Índice jQuery .each ()?

102

estou usando

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

para percorrer as opções em uma lista. Estou me perguntando como posso obter o índice do loop atual?

como eu não quero ter var i = 0; e dentro do loop tem i ++;

Hailwood
fonte

Respostas:

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

registra o índice :)

um exemplo mais detalhado está abaixo.

Damien-Wright
fonte
1
E não , por exemplo, function( value | element, index | key )como o método nativo equivalente forEache todas as outras APIs populares.
Barney
5
Freqüentemente, é melhor depurar com console.log do que alert. Uma grande lista de opções arruinaria sua pilha de janelas com o alerta.
MarkokraM
function(index | key , value | element ) é válido ..?
Senhor mundial
28

jQuery cuida disso para você. O primeiro argumento para sua .each()função de retorno de chamada é o índice da iteração atual do loop. O segundo sendo o elemento DOM correspondente atual. Então:

$('#list option').each(function(index, element){
  alert("Iteration: " + index)
});
Alex
fonte
12

Da documentação jQuery.each () :

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

Então você vai querer usar:

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

... onde o índice será o índice e o elemento será o elemento de opção na lista

01001111
fonte
4

surpresa ao ver que não deram essa sintaxe.

.each sintaxe com dados ou coleção

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

OU

jQuery.each( jQuery('#list option'), function(indexInArray, valueOfElement){
//your code here
}); 
Saurabh Chandra Patel
fonte
3
$('#list option').each(function(intIndex){
//do stuff
});
Ives.me
fonte