2014-02-12 124 views
1

我是jQuery的新手。我正在尝试获取图像src并替换src。我可以使用下面提到的功能获取图像,但我无法获取src。jquery img 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':$(本)。儿童( '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') 
    }; 
}); 
} 

回答

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'); 
}); 

这是所有在详细的文档中解释,我建议你阅读。

+0

有一点解释会有帮助。 – showdev

+0

@showdev已经开始工作了,谢谢;)。 – kapa