2013-03-09 52 views
1

我有以下代碼中:

<img class="sth" data-number="1" src="sth.jpg" alt=""> 

有幾個這樣的元素,他們都只能在數據數量不同。我想對所有元素執行以下操作:

$('.sth').attr('src', 'sth' + data('number') + '.jpg'); 

這樣每個圖像都會用它自己的編號更改src。然而,data('number')不起作用,而$('。sth')。data('number')全部用sth1.jpg改變。

有沒有辦法做到這一點?

回答

1

是的,使用jQuery each()函數,如下所示:

$('.sth').each(function(){ 
    $(this).attr('src', 'sth' + $(this).data('number') + '.jpg'); 
}); 

將由.sth選擇器相匹配的每個元件上執行。

+0

這是正確的做到這一點:原作者幾乎做它正確時,他們做了'$(「某事‘)的數據(’編號」)',但使用'each()'將分別評估'.sth'的每個實例。 – ChrisC 2013-03-09 16:27:38

3

可以使用attr()功能

$('.sth').attr('src', function(){ 
    return 'sth' + $(this).data('number') + '.jpg'; 
});