如何替换 jquery 中 Anchor 标签的 href 中的一些文本
How to replace some of text in href of Anchore tag in jquery
我很少有像 "http%3a//test.dev.test.com/posts/test test" 这样的 URL 锚点,我想用 window 加载函数上的“http://test.dev.test.com/posts/test 测试”替换它,我试过下面的代码为此,它不会更新锚标记的 URL。
$('a[href*="http%3a//"]').each(function () {
this.href = this.attr('href').replace('http%3a//', 'http://');
});
我不明白为什么它不起作用。请帮助我。
编辑::
<a href="http%3a//test.dev.test.com/posts/test test" rel="bookmark" class="aChangeUrl" id="ctl00_lnkEntry">New test in March</a>
attr
不是原生 DOM 方法,而是 jQuery 方法。
改变
this.href = this.attr('href').replace('http%3a//', 'http://');
到
this.href = $(this).attr('href').replace('http%3a//', 'http://');
请注意,您可以使整体更简洁一些:
$('a[href^="http%3a//"]').attr('href', function(_,s) {
return s.replace('http%3a//', 'http://');
});
尝试使用.attr()
函数的接收函数让你的工作变得简单,
$('a[href*="http%3a//"]').attr('href', function(i,href){
return href.replace('http%3a//', 'http://');
});
您遇到错误的原因:
this.attr('href')
----^ Here comes the problem. 'this' will point a native javascript
object at this context and it doesn't have a member function called .attr().
我很少有像 "http%3a//test.dev.test.com/posts/test test" 这样的 URL 锚点,我想用 window 加载函数上的“http://test.dev.test.com/posts/test 测试”替换它,我试过下面的代码为此,它不会更新锚标记的 URL。
$('a[href*="http%3a//"]').each(function () {
this.href = this.attr('href').replace('http%3a//', 'http://');
});
我不明白为什么它不起作用。请帮助我。
编辑::
<a href="http%3a//test.dev.test.com/posts/test test" rel="bookmark" class="aChangeUrl" id="ctl00_lnkEntry">New test in March</a>
attr
不是原生 DOM 方法,而是 jQuery 方法。
改变
this.href = this.attr('href').replace('http%3a//', 'http://');
到
this.href = $(this).attr('href').replace('http%3a//', 'http://');
请注意,您可以使整体更简洁一些:
$('a[href^="http%3a//"]').attr('href', function(_,s) {
return s.replace('http%3a//', 'http://');
});
尝试使用.attr()
函数的接收函数让你的工作变得简单,
$('a[href*="http%3a//"]').attr('href', function(i,href){
return href.replace('http%3a//', 'http://');
});
您遇到错误的原因:
this.attr('href')
----^ Here comes the problem. 'this' will point a native javascript
object at this context and it doesn't have a member function called .attr().