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

Antworten:


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

protokolliert den Index :)

Ein detaillierteres Beispiel finden Sie unten.


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

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


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

3
$('#list option').each(function(intIndex){
//do stuff
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.