jquery img src replace不起作用

时间:2014-02-12 23:08:53

标签: jquery html string dom-manipulation

我是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并用最后的-xyz.jpg替换所有图像的.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')
    };
});
}

1 个答案:

答案 0 :(得分:2)

您以错误的方式使用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');
});

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