【问题标题】:JavaScript .replace() part of a url not working [duplicate]网址的JavaScript .replace()部分不起作用[重复]
【发布时间】:2012-05-13 11:14:39
【问题描述】:

遇到一个小问题,想不通。我在页面上使用 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);
});

【问题讨论】:

    标签: javascript jquery replace href attr


    【解决方案1】:

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

    尝试如下,

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

    【讨论】:

    • 啊,是这样想的。你赢了!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 2017-01-24
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多