如何在jquery中替换Anchore标签的href中的一些文本

Ram*_*ngh 1 html javascript anchor jquery

我很少使用像"http%3a // test.dev.test.com/posts/test test"这样的网址,我想用" http://test.dev.test.com/posts/test test "替换它"在窗口加载功能上,我已尝试过以下代码,但它没有更新锚标记的URL.

 $('a[href*="http%3a//"]').each(function () {
      this.href = this.attr('href').replace('http%3a//', 'http://');
    });
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不起作用.请帮我.

编辑::

<a href="http%3a//test.dev.test.com/posts/test test" rel="bookmark" class="aChangeUrl" id="ctl00_lnkEntry">New test in March</a>
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 5

attr 不是本机DOM方法,而是jQuery方法.

更改

  this.href = this.attr('href').replace('http%3a//', 'http://');
Run Code Online (Sandbox Code Playgroud)

  this.href = $(this).attr('href').replace('http%3a//', 'http://');
Run Code Online (Sandbox Code Playgroud)

请注意,您可以使整体更清洁,更简单:

$('a[href^="http%3a//"]').attr('href', function(_,s) {
     return s.replace('http%3a//', 'http://');
});
Run Code Online (Sandbox Code Playgroud)