jQuery .each () index?


102

sto usando

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

per scorrere le opzioni in un elenco. Mi chiedo come ho potuto ottenere l'indice del loop corrente?

poiché non voglio avere var i = 0; e all'interno del ciclo hanno i ++;

Risposte:


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

registra l'indice :)

un esempio più dettagliato è di seguito.


1
E non , ad esempio, function( value | element, index | key )come il metodo nativo equivalente forEache ogni altra API popolare.
Barney

5
Spesso è meglio eseguire il debug con console.log piuttosto che con alert. Un grande elenco di opzioni rovinerebbe la tua pila di finestre con avviso.
MarkokraM

function(index | key , value | element ) è valido ..?
Mr world wide

28

jQuery si prende cura di questo per te. Il primo argomento della .each()funzione di callback è l'indice dell'iterazione corrente del ciclo. Il secondo è l'elemento DOM corrispondente corrente Quindi:

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

12

Dalla documentazione di jQuery.each () :

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

Quindi ti consigliamo di utilizzare:

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

... dove index sarà l'indice e l'elemento sarà l'elemento opzione nell'elenco


4

sorpresa di vedere che nessuno ha dato questa sintassi.

.each sintassi con dati o raccolta

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

O

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

3
$('#list option').each(function(intIndex){
//do stuff
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.