2011-10-24 79 views
31

數據屬性的值,我有以下的HTML代碼:更新使用jQuery

<a class="toggle" href="#toggle"> 
    <img src="app/css/images/tock.png" alt="No" data-id="4" data-block="1"> 
</a> 

我想更新使用jQuery的srcdata-block屬性的值。我該怎麼做呢?

更新:由於我有很多圖像元素,我想通過使用data-id來更新特定圖像的值。

回答

74
$('.toggle img').data('block', 'something'); 
$('.toggle img').attr('src', 'something.jpg'); 

使用jQuery.datajQuery.attr

爲了理解,我分別向您展示了它們。

+0

對不起,我忘了提,但我想通過使用數據ID來選擇特定的IMG,選擇應選擇由例如數據ID的圖像元素像'$('toggle img [data-id = 4]')' –

+3

你幾乎在那裏:'$('toggle img [data-id =「4」]')' –

+13

FWIW,我發現在爲了覆蓋數據屬性,你必須使用'.attr'而不是'.data'。這很讓人困惑,因爲jQuery能夠將數據附加到元素上,但如果數據屬性已經存在,則可能不會在dom中反映出來。 –

2
$('.toggle img').data('block', 'something').attr('src', 'something.jpg'); 
+0

這不是我想要的,我已更新我的問題請看看。 –

7
$('.toggle img').each(function(index) { 
    if($(this).attr('data-id') == '4') 
    { 
     $(this).attr('data-block', 'something'); 
     $(this).attr('src', 'something.jpg'); 
    } 
}); 

$('.toggle img[data-id="4"]').attr('data-block', 'something'); 
$('.toggle img[data-id="4"]').attr('src', 'something.jpg'); 
+0

使用jQuery.attr而不是jQuery.data,正如在這個答案中提出的那樣,在一些瀏覽器中導致錯誤。一直在那裏。使用數據的 – TheBigDoubleA

+5

確實是一個很好的建議,但請記住,它不會修改原始dom元素,這可能會給其他jquery帶來問題,這取決於dom的更改。 http://www.peterbe.com/plog/data-and-attr-in-jquery –