我是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')
};
});
}
答案 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');
});
这些都在文档中详细解释,我建议你阅读。