jQuery .each () Index?

102

ich benutze

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

um die Optionen in einer Liste zu durchlaufen. Ich frage mich, wie ich den Index der aktuellen Schleife erhalten könnte.

da ich nicht var i = 0 haben möchte; und innerhalb der Schleife haben i ++;

Hagelholz
quelle

Antworten:

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

protokolliert den Index :)

Ein detaillierteres Beispiel finden Sie unten.

Damien-Wright
quelle
1
Und nicht zum Beispiel function( value | element, index | key )wie die entsprechende native Methode forEachund jede andere beliebte API.
Barney
5
Oft ist es besser, mit console.log zu debuggen als mit alert. Eine große Optionsliste würde Ihren Fensterstapel mit Alarm ruinieren.
MarkokraM
function(index | key , value | element ) ist es gültig ..?
Herr weltweit
28

jQuery kümmert sich für Sie darum. Das erste Argument für Ihre .each()Rückruffunktion ist der Index der aktuellen Iteration der Schleife. Das zweite ist das aktuell übereinstimmende DOM-Element. Also:

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

Aus der Dokumentation zu jQuery.each () :

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

Sie möchten also Folgendes verwenden:

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

... wobei index der Index ist und element das Optionselement in der Liste ist

01001111
quelle
4

Überraschung zu sehen, dass niemand diese Syntax gegeben hat.

.each Syntax mit Daten oder Sammlung

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

ODER

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