jQuery .each () index?

102

j'utilise

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

pour parcourir les options dans une liste. Je me demande comment je pourrais obtenir l'index de la boucle actuelle?

car je ne veux pas avoir var i = 0; et à l'intérieur de la boucle ont i ++;

Hailwood
la source

Réponses:

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

enregistre l'index :)

un exemple plus détaillé est ci-dessous.

Damien-Wright
la source
1
Et pas , par exemple, function( value | element, index | key )comme la méthode native équivalente forEachet toutes les autres API populaires.
Barney
5
Il est souvent préférable de déboguer avec console.log plutôt qu'avec alert. Une grande liste d'options ruinerait votre pile de fenêtres avec une alerte.
MarkokraM
function(index | key , value | element ) est-ce valide ..?
Mr world wide
28

jQuery s'occupe de cela pour vous. Le premier argument de votre .each()fonction de rappel est l'index de l'itération actuelle de la boucle. Le second étant l'élément DOM correspondant actuel Donc:

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

Depuis la documentation jQuery.each () :

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

Vous voudrez donc utiliser:

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

... où index sera l'index et l'élément sera l'élément option dans la liste

01001111
la source
4

surprise de voir qu'aucun n'a donné cette syntaxe.

.each syntaxe avec données ou collection

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

OU

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