2014-02-12 125 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