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

Réponses:


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

enregistre l'index :)

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


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

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


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

3
$('#list option').each(function(intIndex){
//do stuff
});
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.