因此,我编写了以下代码来遍历每个 anchor ,获取其 href,如果它包含旧地址,则尝试用新地址替换旧地址。虽然在该网站的代码出现之前很久就明显存在问题,但我需要一个快速而肮脏的解决方案来解决这个问题,所以这个代码就是我想要的。
所以,下面的代码不起作用。 .Replace 显然需要完全匹配,因此它会在“foo is good”句子中找到“foo”,但不会在“fooIsGood”中找到“foo”。
$('a').each(function() {
var addressSwitch = $(this).attr("href");
if (addressSwitch){
var test = addressSwitch.indexOf("http://www.oldaddress.com");
if ( test == 0){
addressSwitch.replace("http://www.oldaddress.com/", "www.newaddress.com");
$(this).attr("href" , addressSwitch);
}
}
});
那么,什么才有效呢?
提前致谢!
最佳答案
.replace()
工作正常,但您没有分配替换的值,它需要是:
addressSwitch = addressSwitch.replace("http://www.oldaddress.com/", "www.newaddress.com");
请记住.replace()
不会更改原始字符串,它会返回一个替换了值的新字符串。
请记住.attr()
还需要一个函数,因此您可以将代码简化为:
$('a[href^="http://www.oldaddress.com"]').attr("href", function(i, href) {
return href.replace("http://www.oldaddress.com/", "www.newaddress.com");
});
关于javascript - 替换较大字符串的一小部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382407/