【问题标题】:jquery img src replace doesn't workjquery img src替换不起作用
【发布时间】:2014-02-12 23:08:52
【问题描述】:

我是 jQuery 的新手。我正在尝试获取图像 src 并替换 src。我可以使用下面提到的函数获取图像,但无法获取 src。

<div class="class1">

<a href="Link1"><img src="//abc.com/1.jpg"/></a>
<a href="Link2"><img src="//abc.com/2.jpg"/></a>
<a href="Link3"><img src="//abc.com/3.jpg"/></a>
<a href="Link4"><img src="//abc.com/4.jpg"/></a>
.
.
.
<a href="Linkn"><img src="//abc.com/n.jpg"/></a>

</div>

这个功能不起作用,但这是我需要做的。对于所有图像,我想获取 src 并将末尾的 .jpg 替换为 -xyz.jpg 。

'galleryImg': $(this).children('img') 返回图像但是当我添加 .attr('src') 时,它停止工作

function () {
var $gallery = $('.class1 a');
return $gallery.map(function () {
    return {
        'galleryLink': $(this).attr('href'),
        'galleryImg': $(this).children('img').attr('src').replace('.jpg','-xyz.jpg')
    };
});
}

【问题讨论】:

    标签: jquery html string dom-manipulation


    【解决方案1】:

    您以错误的方式使用attr()

    首先attr('src')只会获取当前值,修改后必须使用attr('src', newvalue)来设置。

    其次,attr() 仅适用于集合的第一个元素。如果您有多个元素,您可以在它们上使用each() 循环,或者为每个属性值运行call attr() with a function,并将返回的值设置为属性的新值。

    这是后者的示例 (and a little demo):

    $('.class1').find('img').attr('src', function(i, val) {
        return val.replace(/\.jpg$/,'-xyz.jpg');
    });
    

    这在文档中都有详细解释,我建议您阅读。

    【讨论】:

    • 稍微解释一下会有帮助。
    猜你喜欢
    • 2014-03-17
    • 2012-07-14
    • 2019-04-27
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多