【问题标题】:How to set parameter and its value to HREF dynamic using javascript如何使用 javascript 将参数及其值设置为 HREF 动态
【发布时间】:2015-07-15 05:03:32
【问题描述】:

我有如下链接

<a id="dynamicLink" href="http://www.w3schools.com?userName=test">Visit W3Schools</a>

我想将userName 的值从test 更改为test1

如何使用 javascript 做到这一点?

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我可以知道我投反对票的原因吗?

标签: html hyperlink attributes href


【解决方案1】:

我建议使用库来处理URIs。它将提供一些一致性。以下是使用URI.js 的示例:

// Get our <a> element
var l = document.getElementById('dynamicLink');

// Use URI.js to work with the URI
// http://medialize.github.io/URI.js/
var uri = URI(l.href);

// Get the query string as an object
var qs = uri.query(true);

// Change our value
qs.userName = 'test1'

// Update the URI object
uri.query(qs);

// Set our new HREF on the <a> element
l.href = uri;
<script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.15.2/URI.min.js"></script>

<a id="dynamicLink" href="http://www.w3schools.com?userName=test&someOtherKey=val">Visit W3Schools</a>

【讨论】:

  • Jon Surrell 这是替换文本,但如果我传递逗号分隔值也会删除其他参数,然后它会为每个值创建多个参数。请建议如何进一步进行。
  • @Tony 我已更改示例以解决此问题。也可以参考URI.js docs
  • 谢谢乔恩,很抱歉再次打扰您,我发送了逗号分隔值,它只需要第一个值,甚至设置其他值。
  • 谢谢乔恩,我明白了,它是数组并转换为使用 toString() 并且现在可以正常工作了。
【解决方案2】:

试试这个:

document.getElementById("dynamicLink").href.replace("userName", "test1");

这应该将 hrefuserNamevalue 更改为 test1

【讨论】:

  • Ahs N 它没有设置值,如果我错了请纠正我
  • 你是对的。我读错了问题。我刚刚编辑了答案来做你需要的。请再次测试。
  • 不,它仍然没有替换该值。请检查
猜你喜欢
  • 2016-06-10
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2021-05-03
  • 2021-01-09
相关资源
最近更新 更多