如何使用Jquery更改链接的href?

时间:2012-05-08 17:31:59

标签: jquery regex variables hyperlink replace

我想更改链接的网址。

这是代码

<div id="content">
  ...
  <a href="/mbs/articleVC.php?mbsC=freebbs&mbsIdx=822907&cpage=10">link</a>
  <a href="/mbs/articleVC.php?mbsC=freebbs&mbsIdx=822908&cpage=11">link</a>
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=802894&cpage=&mbsW=search&select=stt&opt=1&keyword=keyword1">link</a>
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=802895&cpage=&mbsW=search&select=stt&opt=1&keyword=keyword2">link</a>
  ...
</div>

替换为:

<div id="content">
  ...
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=822907&cpage=10">link</a>
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=822908&cpage=11">link</a>
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=802894&cpage=&mbsW=search&select=stt&opt=1&keyword=keyword">link</a>
  <a href="/mbs/articleV.php?mbsC=freebbs&mbsIdx=802895&cpage=&mbsW=search&select=stt&opt=1&keyword=keyword2">link</a>
  ...
</div>

页面上有很多链接 如何使用jQuery将“article VC .php”替换为“article V .php”?

6 个答案:

答案 0 :(得分:1)

第一个更好更快

$('#content a').attr('href', function(index, Oldhref) {
  return Oldhref.replace(/articleVC/ ,'articleV')
});

$('#content a').each(function() {
  $(this).attr('href', $(this).attr('href').replace(/articleVC/ ,'articleV'));
});

答案 1 :(得分:1)

您可以尝试:

$('#content a[href*="articleVC.php"]').each(function() {
    href = $(this).attr('href').replace('articleVC.php' ,'articleV.php');
    $(this).attr('href', href);
});​​

Test Here

答案 2 :(得分:1)

$('a', '#content').each(function() {
    this.href = this.href.replace('articleVC', 'articleV');
});​

如果出于某种原因更快更好: - )

var elms = document.getElementsByTagName('a');
for (i=0; i<elms.length; i++) {
    elms[i].href = elms[i].href.replace('articleVC', 'articleV');
}

答案 3 :(得分:0)

您可以使用:

$('#content a').each(function() {
    $(this).attr('href', $(this).attr('href').replace('articleVC.php','articleV.php'));
});

希望这会有所帮助:)

答案 4 :(得分:0)

$('a').each(function() {
    $(this).attr('href', $(this).attr('href').replace('articleVC.php', 'articleV.php'));
});

您可以使用each函数迭代所有匹配的<a>元素,因为每个元素都通过调用attr('href')获取'href'属性,使用replace String获取替换字符串的方法,然后再将其分配给'href'属性。

答案 5 :(得分:0)

您可以使用正则表达式实现此目的。

使用jQuery:(jsfiddle

$('#content a').each(function() {
    this.href = this.href.replace(/articleVC\.php/, 'articleV.php');
});

在vanilla JavaScript中:(jsfiddle

var links = document.getElementById('content').children;
for(l in links) {
    links[l].href = links[l].href.replace(/articleVC\.php/, 'articleV.php');
};