chỉ mục jQuery .each ()?


102

tôi đang dùng

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

để lặp lại các tùy chọn trong danh sách. Tôi đang tự hỏi làm thế nào tôi có thể nhận được chỉ mục của vòng lặp hiện tại?

vì tôi không muốn phải có var i = 0; và bên trong vòng lặp có i ++;

Câu trả lời:


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

ghi lại chỉ mục :)

một ví dụ chi tiết hơn là bên dưới.


1
không , chẳng hạn, function( value | element, index | key )giống như phương pháp gốc tương đương forEachvà mọi API phổ biến khác.
Barney

5
Thường thì nên gỡ lỗi bằng console.log hơn là alert. Danh sách tùy chọn lớn sẽ làm hỏng ngăn xếp cửa sổ của bạn với cảnh báo.
MarkokraM

function(index | key , value | element ) là nó hợp lệ ..?
Mr world wide

28

jQuery sẽ giải quyết việc này cho bạn. Đối số đầu tiên cho .each()hàm gọi lại của bạn là chỉ số của lần lặp hiện tại của vòng lặp. Thứ hai là phần tử DOM phù hợp hiện tại Vì vậy:

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

12

Từ tài liệu jQuery.each () :

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

Vì vậy, bạn sẽ muốn sử dụng:

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

... trong đó chỉ mục sẽ là chỉ mục và phần tử sẽ là phần tử tùy chọn trong danh sách


4

ngạc nhiên khi thấy rằng không có cú pháp này.

.each cú pháp với dữ liệu hoặc tập hợp

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

HOẶC LÀ

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

3
$('#list option').each(function(intIndex){
//do stuff
});
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.