使用 jQuery .attr 替换 href link
Replacing a href link using jQuery .attr
我正在尝试使用 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']")
正在返回正确的 link。但是,当我检查页面源代码时,href 值永远不会被替换。
我正在使用 http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js?build=7111092
我对如何调试问题有点困惑,任何人都可以帮助发现它吗?希望这只是一个愚蠢的错误!
--编辑--
我现在也使用 inspect element 检查了它,不幸的是它没有被替换。
还要感谢@Vohuman 和@roxxypoxxy 提供的信息,除非我将鼠标悬停在它上面,否则无法看到更改。愚蠢的是,我期待它像 find/replace!
一样工作
我认为这是 Jquery 版本问题。您正在使用 Jquery 1.5。在 Jquery 文档中,他们提到了这个
Before jQuery 1.6, the .attr() method sometimes took property values
into account when retrieving some attributes, which could cause
inconsistent behavior.
来源https://api.jquery.com/attr/
所以尝试使用更高的 JQuery 版本或使用 .prop()
而不是 .attr()
我正在尝试使用 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']")
正在返回正确的 link。但是,当我检查页面源代码时,href 值永远不会被替换。
我正在使用 http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js?build=7111092
我对如何调试问题有点困惑,任何人都可以帮助发现它吗?希望这只是一个愚蠢的错误!
--编辑--
我现在也使用 inspect element 检查了它,不幸的是它没有被替换。
还要感谢@Vohuman 和@roxxypoxxy 提供的信息,除非我将鼠标悬停在它上面,否则无法看到更改。愚蠢的是,我期待它像 find/replace!
一样工作我认为这是 Jquery 版本问题。您正在使用 Jquery 1.5。在 Jquery 文档中,他们提到了这个
Before jQuery 1.6, the .attr() method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior.
来源https://api.jquery.com/attr/
所以尝试使用更高的 JQuery 版本或使用 .prop()
而不是 .attr()