Í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 ++;

Respostas:


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

registra o índice :)

um exemplo mais detalhado está abaixo.


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

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


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

3
$('#list option').each(function(intIndex){
//do stuff
});
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.