Индекс jQuery .each ()?

102

Я использую

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

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

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

Hailwood
источник

Ответы:

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

регистрирует индекс :)

более подробный пример ниже.

Дэмиен-Райт
источник
1
И не , например, function( value | element, index | key )как эквивалентный собственный метод forEachи любой другой популярный API.
Барни
5
Часто лучше выполнять отладку с помощью console.log, чем с предупреждением. Большой список опций разрушит ваш стек окон с предупреждением.
MarkokraM
function(index | key , value | element ) это действительно ..?
Мистер всемирный
28

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

$('#list option').each(function(index, element){
  alert("Iteration: " + index)
});
Alex
источник
12

Из документации jQuery.each () :

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

Итак, вы захотите использовать:

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

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

01001111
источник
4

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

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

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

ИЛИ

jQuery.each( jQuery('#list option'), function(indexInArray, valueOfElement){
//your code here
}); 
Саураб Чандра Патель
источник
3
$('#list option').each(function(intIndex){
//do stuff
});
Ives.me
источник