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.