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


102

Я использую

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

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

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

Ответы:


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)
});

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 в списке


4

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

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

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

ИЛИ

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.