Digamos que tengo este marcado:
<ul id="wizard">
<li>Step 1</li>
<li>Step 2</li>
</ul>
Y tengo este jQuery:
$("#wizard li").click(function () {
// alert index of li relative to ul parent
});
¿Cómo puedo obtener el índice del niño en li
relación con su padre, al hacer clic en eso li
?
Por ejemplo, cuando hace clic en "Paso 1", alert
debería aparecer un con "0".
javascript
jquery
AgileMeansDoAsLittleAsPossible
fuente
fuente
algo como:
fuente
Echa un vistazo a este ejemplo .
fuente
No es necesario requerir una gran biblioteca como jQuery para lograr esto, si no lo desea. Para lograr esto con la manipulación DOM incorporada, obtenga una colección de los
li
hermanos en una matriz y, al hacer clic, verifique elindexOf
elemento cliqueado en esa matriz.O, con la delegación del evento:
O, si los elementos secundarios pueden cambiar dinámicamente (como con una lista de tareas pendientes), entonces tendrá que construir la matriz de
li
s con cada clic, en lugar de antes:fuente
Delegate y Live son fáciles de usar, pero si no tiene más li: s agregados dinámicamente, también puede usar la demora de eventos con enlace / clic normal. Debería haber alguna ganancia de rendimiento con este método ya que el DOM no tendrá que ser monitoreado para detectar nuevos elementos coincidentes. No tengo ningún número real pero tiene sentido :)
Puede probarlo en jsFiddle: http://jsfiddle.net/jimmysv/4Sfdh/1/
fuente
Otra forma
Demo https://jsfiddle.net/m9xge3f5/
fuente