2013-03-09 23 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'; 
});