індекс 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.
Барні

5
Часто краще налагоджувати консоль.log, ніж попереджувати. Великий список опцій зіпсує ваш стек вікон із попередженням.
MarkokraM

function(index | key , value | element ) чи дійсно ..?
Містер у всьому світі

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
}); 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.