0

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

集合中有不同数量的图像,所以我使用 jQuery 的.each()方法来抓取它们,替换部分 url,然后在排序后将它们淡入一个。淡入淡出工作正常,但 JavaScript.replace()没有生效(尽管如果我把它们变成一个变量并记录它,我会看到正确的结果),如果我将淡入淡出函数链接到它的后面,.replace它不会被执行。

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

感谢您的帮助!

HTML:

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

JavaScript:

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

2 回答 2

1

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

尝试如下,

this.href = this.href.replace('_b.jpg','_c.jpg');
于 2012-05-03T21:56:08.720 回答
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);
});
于 2012-05-03T21:59:00.487 回答