jQuery .each () indeks?

102

ja używam

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

aby zapętlić opcje na liście. Zastanawiam się, jak mogę uzyskać indeks bieżącej pętli?

ponieważ nie chcę mieć var ​​i = 0; a wewnątrz pętli i ++;

Hailwood
źródło

Odpowiedzi:

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

rejestruje indeks :)

bardziej szczegółowy przykład znajduje się poniżej.

Damien-Wright
źródło
1
A nie , na przykład, function( value | element, index | key )jak równoważna metoda natywna forEachi każde inne popularne API.
Barney,
5
Często lepiej debugować za pomocą console.log niż alert. Duża lista opcji zrujnowałaby twój stos okien z alertem.
MarkokraM
function(index | key , value | element ) czy to ważne ..?
Mr world wide
28

jQuery zajmie się tym za Ciebie. Pierwszym argumentem .each()funkcji zwrotnej jest indeks aktualnej iteracji pętli. Drugi to aktualnie dopasowany element DOM Więc:

$('#list option').each(function(index, element){
  alert("Iteration: " + index)
});
Alex
źródło
12

Z dokumentacji jQuery.each () :

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

Więc będziesz chciał użyć:

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

... gdzie indeks będzie indeksem, a element będzie elementem opcji na liście

01001111
źródło
4

Zaskoczyć, że nie podali tej składni.

.each składnia z danymi lub kolekcją

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

LUB

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