如何在jQuery集合上分配顺序值?

时间:2010-03-24 15:23:01

标签: javascript jquery

我觉得自己像个傻瓜:我希望将index=i分配给我选择的每个LI,并且我递增。它似乎一次性分配它们,但它们都得到index=1。想法?

$("#window ul li").each(function(){
    var i = 1;
    $(this).attr("index", i);
    i++;
});

3 个答案:

答案 0 :(得分:5)

您传递给每个函数的回调函数在集合中被赋予从零开始的索引作为第一个参数。

$("#window ul li").each(function(i){
    $(this).attr("index", i+1);
});

因此,如果您希望索引以1开头,请添加1。

答案 1 :(得分:0)

这是因为each为每个元素分别执行 的lambda函数,并且在每次调用中都设置了i=1。在致电i之前,您可以声明{in each

var i = 1;
$("#window ul li").each(function(){
    $(this).attr("index", i);
    i++;
});

编辑:但马里奥的解决方案要好得多。

答案 2 :(得分:0)

var i = 1;
$("#window ul li").each(function(){
    $(this).attr("index", i);
    i++;
});

这应该也可以。