【问题标题】:jQuery wildcard character in image source图像源中的 jQuery 通配符
【发布时间】:2011-05-24 22:43:22
【问题描述】:

我想使用 jQuery 在点击时更改图像的 src 属性。这是 HTML:

<a href="#" class="view2">View 2</a>
<img src="images/shoe1a.jpg" class="sb-player" />

在 img src 中,我想将“a”替换为“b”,但我的问题是我想忽略它前面的“1”,因为它也可能看起来像这样:

<img src="images/shoe2a.jpg" class="sb-player" />

我的 jQuery 做到了这一点,星号是我需要通配符的地方:

$(function() {
    $('.view2').click(function() {
        $('.sb-player').attr('src', 'images/shoe'+*+'b.jpg');
        return false;
    });
});

是否有某个字符可以作为任何数字的通配符?

【问题讨论】:

    标签: jquery replace image wildcard src


    【解决方案1】:

    只需.replace() 整个src 字符串的结尾,将a.jpg 替换为b.jpg

    你可以传递一个函数to .attr()

    参数i代表集合中的当前迭代,val是当前值。返回值代表新值。

    $(function() {
        $('.view2').click(function() {
            $('.sb-player').attr('src', function(i,val) { 
                 return val.replace('a.jpg','b.jpg');
            });
            return false;
        });
    });
    

    【讨论】:

    • 美丽。非常感谢!
    【解决方案2】:

    匹配字符串任何部分的最有效方法是在 javascript 中使用 Regular Expressions

    也许通过这种方式你可以解决你的问题:

    
    $(function() {
        $('.view2').click(function() {
            var originalSrc = $('.sb-player').attr('src');
            $('.sb-player').attr('src', originalSrc.replace(/a\./,"b."));
            return false;
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2012-12-20
      相关资源
      最近更新 更多