2010-03-24 34 views
1

我覺得自己像一個笨蛋:我想爲我選擇的每個LI分配index=i,隨着我的增加。它似乎一次將它們全部分配,並且它們全部得到index=1。思考?如何通過jQuery集合分配順序值?

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

回答

5

您傳遞給每個回調函數的回調函數被賦予集合中從零開始的索引作爲第一個參數。

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

所以,如果你希望你的索引,從1開始,加1

+0

哇;所以它會照顧你的迭代器......誰知道。謝謝! – 2010-03-24 15:27:03

0

這是因爲each執行lambda函數每個元素分別並在每個打電話給你設定的i=1。在致電each之前,您可以聲明並確認i

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

編輯:但馬里奧的解決方案要好得多。

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

這應該也適用。