jQuery .each () index?

102

estoy usando

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

para recorrer las opciones en una lista. Me pregunto cómo podría obtener el índice del bucle actual.

como no quiero tener var i = 0; y dentro del bucle tienen i ++;

Granizo
fuente

Respuestas:

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

registra el índice :)

un ejemplo más detallado se muestra a continuación.

Damien-Wright
fuente
1
Y no , por ejemplo, function( value | element, index | key )como el método nativo equivalente forEachy cualquier otra API popular.
Barney
5
A menudo, es mejor depurar con console.log que alert. La lista de opciones grande arruinaría su pila de ventanas con alerta.
MarkokraM
function(index | key , value | element ) es valido ..?
Mr world wide
28

jQuery se encarga de esto por usted. El primer argumento de su .each()función de devolución de llamada es el índice de la iteración actual del bucle. El segundo es el elemento DOM coincidente actual Entonces:

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

De la documentación de jQuery.each () :

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

Entonces querrás usar:

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

... donde index será el índice y el elemento será el elemento de opción en la lista

01001111
fuente
4

Sorprende ver que no han dado esta sintaxis.

.each sintaxis con datos o colección

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

O

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