【问题标题】:Replacing a href link using jQuery .attr使用 jQuery .attr 替换 href 链接
【发布时间】:2015-04-22 15:00:38
【问题描述】:

我正在尝试使用 jQuery 更改 href 的内容。我在这个网站上找到了很多很好的答案,并试图用这个来实现它:

How to change the href for a hyperlink using jQuery

我将它包裹在这样的 if 语句中:

if(window.location.href == "http://test.com/Home.aspx"){

    $("a[href='https://www.surveymonkey.com/s/tester123']").attr('href', 'https://www.surveymonkey.com/s/tester234');
}

我已经放置了一些控制台日志,它们显示正在到达这行代码,并且:

$("a[href='https://www.surveymonkey.com/s/tester123']")

正在返回正确的链接。但是,当我检查页面源时,href 值永远不会被替换。

我正在使用http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js?build=7111092

我有点纠结于如何调试问题所在,谁能帮忙发现它?希望这只是一个愚蠢的错误!

--编辑--

我现在也使用检查元素检查了它,不幸的是它没有被替换。

还要感谢 @Vohuman 和 @roxxypoxxy 提供有关除非我将鼠标悬停在它上面才能看到更改的信息。愚蠢地我期待它像查找/替换一样工作!

【问题讨论】:

  • “但是,当我检查页面源时,href 值永远不会被替换。”。您应该检查元素并查看 DOM 元素的实时表示。
  • 页面源是页面源,不能更改(幸好)客户端...
  • 我刚刚通过检查元素检查了它,不幸的是它仍然是一样的。
  • 页面源永远不会被 javascript 的 DOM 操作改变。要验证您的 href 替换是否有效,您可以将鼠标悬停在链接上并在状态栏中查看它指向的链接。
  • 这是jsfiddle.net/3vaqn2qt/1 的 jsfiddle 我添加了在外部资源下提供的相同版本的 jquery,它可以正常工作您可以将鼠标悬停在链接上以显示它显示以 tester234 结尾的 href

标签: javascript jquery html href


【解决方案1】:

我认为这是一个 Jquery 版本问题。您正在使用 Jquery 1.5。在 Jquery 文档中,他们提到了这一点

在 jQuery 1.6 之前,.attr() 方法有时会获取属性值 在检索某些属性时考虑,这可能会导致 不一致的行为。

来源https://api.jquery.com/attr/

所以尝试使用更高版本的 JQuery 或使用 .prop() 而不是 .attr()

【讨论】:

  • 这刚刚解决了 - 谢谢!时间到时将接受为正确答案。
猜你喜欢
  • 2012-10-26
  • 2011-04-28
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2018-03-22
  • 2011-03-07
相关资源
最近更新 更多