使用jquery为每个元素增加属性值(int)

时间:2011-08-09 13:13:45

标签: jquery int increment

我有不明数量的部分元素:

<section id="foo">
...
</section>

<section id="bar">
...
</section>

对于每个存在的部分,我需要添加一个属性“data-serial”,它是一个从0开始的整数,并且对于每个存在的部分递增1,例如,上面将变成:

<section id="foo" data-serial="0">
...
</section>

<section id="bar" data-serial="1">
...
</section>

<section id="bla" data-serial="2">
...
</section>
...

如何使用jQuery实现这一目标?

由于

4 个答案:

答案 0 :(得分:12)

var current = 0;
$("section").each(function() {
   $(this).data("serial", current);
   current++;
});

循环遍历文档中的所有section元素,并使用jQuery current方法将data的值附加到每个元素。

答案 1 :(得分:12)

James Allardice的答案的修改版本利用了每个传递给它所给出的函数的很少使用的参数。第一个参数是循环当前迭代的索引。

http://api.jquery.com/each/

$("section").each(function(index) {
   $(this).attr("data-serial", index);
});

答案 2 :(得分:1)

$("section").each(function(i, e) { $(e).attr("data-serial", i) });

答案 3 :(得分:0)

类似

var i = 0;
$('section').each(function() {
    $(this).data('serial', i++);
});