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 hijo li en relación con su padre, al hacer clic en ese li ?
Por ejemplo, cuando hace clic en "Paso 1", debería aparecer una alert con "0".
$("#wizard li").click(function () { console.log( $(this).index() ); }); Sin embargo, en lugar de adjuntar un controlador de clic para cada elemento de la lista, es mejor (en cuanto al rendimiento) usar el delegate que se vería así:
$("#wizard").delegate('li', 'click', function () { console.log( $(this).index() ); }); En jQuery 1.7+, debe usar on . El siguiente ejemplo vincula el evento al elemento #wizard , que funciona como un evento de delegado:
$("#wizard").on("click", "li", function() { console.log( $(this).index() ); });algo como:
$("ul#wizard li").click(function () { var index = $("ul#wizard li").index(this); alert("index is: " + index) });