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 ++;

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.


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

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


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

3
$('#list option').each(function(intIndex){
//do stuff
});
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.