2010-12-03 1 views
77

Я используюjQuery .each() index?

$('#list option').each(function(){ 
//do stuff 
}); 

в петлю над опциями в списке. Мне интересно, как я могу получить индекс текущего цикла?

как я не хочу иметь var i = 0; и внутри цикла есть i ++;

+7

Прочитайте API, возможно ... http://api.jquery.com/each/ – 2010-12-03 02:46:48

ответ

134
$('#list option').each(function(index){ 
    //do stuff 
    alert(index); 
}); 

оповещает индекс :) ​​

+1

И * не *, например, `function (value | element, index | key)`, как эквивалентный собственный метод `forEach` и любой другой популярный API. – Barney 2013-12-05 14:41:00

25

JQuery заботится об этом для вас. Первый аргумент вашей функции обратного вызова .each() является индексом текущей итерации цикла. Второй является ток соответствует DOM элемент Итак:

$('#list option').each(function(index, element){ 
    alert("Iteration: " + index) 
}); 
3
$('#list option').each(function(intIndex){ 
//do stuff 
}); 
9

jQuery.each() documentation Из:

.each(function(index, Element)) 
    function(index, Element)A function to execute for each matched element. 

Таким образом, вы будете использовать:

$('#list option').each(function(i,e){ 
    //do stuff 
}); 

... где индексом будет индекс, а элементом будет элемент option в списке

1

Удивительно, что нет синтаксиса.

.each синтаксис с данными или коллекции

jQuery.each(collection, callback(indexInArray, valueOfElement)); 

ИЛИ

jQuery.each(jQuery('#list option'), function(indexInArray, valueOfElement){ 
//your code here 
});