jQuery .each () index?

102

saya menggunakan

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

untuk mengulang opsi dalam daftar. Saya bertanya-tanya bagaimana saya bisa mendapatkan indeks dari loop saat ini?

karena saya tidak ingin memiliki var i = 0; dan di dalam loop memiliki i ++;

Hailwood
sumber

Jawaban:

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

mencatat indeks :)

contoh yang lebih detail ada di bawah.

Damien-Wright
sumber
1
Dan tidak , misalnya, function( value | element, index | key )seperti metode asli yang setara forEachdan setiap API populer lainnya.
Barney
5
Seringkali lebih baik men-debug dengan console.log daripada alert. Daftar opsi besar akan merusak tumpukan jendela Anda dengan peringatan.
MarkokraM
function(index | key , value | element ) apakah itu valid ..?
Mr world wide
28

jQuery menangani ini untuk Anda. Argumen pertama untuk .each()fungsi callback Anda adalah indeks dari iterasi loop saat ini. Yang kedua adalah elemen DOM yang cocok saat ini Jadi:

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

Dari dokumentasi jQuery.each () :

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

Jadi, Anda ingin menggunakan:

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

... di mana indeks akan menjadi indeks dan elemen akan menjadi elemen opsi dalam daftar

01001111
sumber
4

terkejut melihat bahwa tidak ada yang memberikan sintaks ini.

.each sintaks dengan data atau koleksi

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

ATAU

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