JavaScript .replace()部分网址无法正常工作

时间:2012-05-03 21:54:55

标签: javascript jquery replace href attr

遇到一个小问题,无法弄明白。我在页面上使用jQuery来处理一些图像加载和灯箱。部分功能集需要替换锚标记href的一部分,以将其指向不同的资源。

集合中有不同数量的图像,因此我使用jQuery的.each()方法来抓取它们,替换部分网址,然后在订单后将其淡入淡出。褪色工作正常,但JavaScript的.replace()没有生效(但如果我将它们转换为变量并记录它,我会看到正确的结果),如果我将淡入淡出的函数链接到{{1它没有被执行。

感觉价值没有返回到元素。我错过了什么?

感谢您的帮助!

HTML:

.replace

JavaScript的:

<a class="test" href="aresourcewithextension_b.jpg">
    <img src="aresourcewithextension_a.jpg" />
</a>

2 个答案:

答案 0 :(得分:1)

您需要设置替换的href。 .replace本身不会更新原始字符串。

尝试如下,

this.href = this.href.replace('_b.jpg','_c.jpg');

答案 1 :(得分:0)

你必须记住字符串是不可变的,即使在JavaScript中也是如此。试试这个:

$(".test").each(function(i){
    $(this).attr("href", $(this).attr("href").replace("_b.jpg", "_c.jpg"));
    $(this).delay(100 * i).animate({opacity:1}, 200);
});