2010-12-03 13 views
77

estoy usandojQuery .each() index?

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

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

ya que no quiero tener que tener var i = 0; y dentro del ciclo tienen i ++;

+7

Leer la API, tal vez ... http://api.jquery.com/each/ –

Respuesta

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

alerta al índice :)

+1

Y * no *, por ejemplo, 'function (value | element, index | key)', como el método nativo equivalente 'forEach' y cualquier otra API popular. – Barney

+3

A menudo es mejor depurar con console.log que alerta. La lista de opciones grandes arruinaría su pila de ventanas con alerta. – MarkokraM

25

jQuery se encarga de esto para usted. El primer argumento para su función de devolución de llamada .each() es el índice de la iteración actual del ciclo. El segundo es la corriente elemento emparejado DOM Así:

$('#list option').each(function(index, element){ 
    alert("Iteration: " + index) 
}); 
3
$('#list option').each(function(intIndex){ 
//do stuff 
}); 
9

Desde el jQuery.each() documentation:

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

lo que usted quiere utilizar:

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

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

1

sorpresa al ver que no se ha dado esta sintaxis.

.each sintaxis de datos o colección

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

O

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