jQuery .each () ดัชนี?


102

ฉันใช้

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

เพื่อวนซ้ำตัวเลือกในรายการ ฉันสงสัยว่าฉันจะได้รับดัชนีของลูปปัจจุบันได้อย่างไร?

เพราะฉันไม่ต้องการให้มี var i = 0; และภายในลูปมี i ++;

คำตอบ:


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

บันทึกดัชนี :)

ตัวอย่างรายละเอียดเพิ่มเติมอยู่ด้านล่าง


1
และไม่ใช่เช่นfunction( value | element, index | key )เดียวกับเมธอดเนทีฟที่เทียบเท่าforEachและ API ยอดนิยมอื่น ๆ
Barney

5
บ่อยครั้งการดีบักด้วย console.log ดีกว่าการแจ้งเตือน รายการตัวเลือกขนาดใหญ่จะทำลายสแต็กหน้าต่างของคุณด้วยการแจ้งเตือน
MarkokraM

function(index | key , value | element ) ใช้ได้ไหม .. ?
Mr world wide

28

jQuery ดูแลสิ่งนี้ให้คุณ อาร์กิวเมนต์แรกของ.each()ฟังก์ชันเรียกกลับของคุณคือดัชนีของการวนซ้ำปัจจุบันของลูป อย่างที่สองคือองค์ประกอบ DOM ที่จับคู่ปัจจุบันดังนั้น:

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

12

จากเอกสารjQuery.each () :

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

ดังนั้นคุณจะต้องใช้:

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

... โดยที่ดัชนีจะเป็นดัชนีและองค์ประกอบจะเป็นองค์ประกอบตัวเลือกในรายการ


4

แปลกใจที่เห็นว่าไม่มีไวยากรณ์นี้

.each ไวยากรณ์ที่มีข้อมูลหรือการรวบรวม

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

หรือ

jQuery.each( jQuery('#list option'), function(indexInArray, valueOfElement){
//your code here
}); 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.