2011-10-21 8 views
7

tengo algo de código como este:Obtener índice de jquery del elemento - incluyendo sólo ciertos tipos de elemento de

<h2 id="a">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

<h2 id="zzz">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

<h2 id="123">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

Quiero ser capaz de determinar, con jQuery, el índice de un determinado h2, con exclusión de todos los demás elementos, por lo que solo se relaciona con elementos h2. Entonces, por ejemplo, si obtuve el índice del ítem con id = "123" devolvería 3, ya que es el tercero h2 en el árbol.

He intentado esto:

$('#123').index('h2'); 

pero no parece funcionar. Todavía cuenta los otros elementos en el mismo nivel de la estructura DOM en el recuento.

+1

tener en cuenta que "123" no es un valor válido para el atributo ID. – jbabey

Respuesta

17

Debe especificar la colección de elementos, luego use index(<element>) para obtener el índice del elemento dado. Nota: El argumento debe ser un objeto jQuery o DOM. Las cadenas no funcionan.
Tenga en cuenta que los índices de JavaScript son basados ​​en cero, por lo que un índice de 2 significa en realidad el tercer elemento .

$("#123").parent().children('h2').index($('#123')) 

violín: http://jsfiddle.net/2dg2q/

+1

esto es genial !!, necesitas un premio, y creo que deberían crear una nueva forma de hacerlo – Fanckush

+1

¡respuesta perfecta! –

+0

https://jsfiddle.net/6ksujand/ solo mi ejemplo que ilustra qué tan buena es esta respuesta – Squirrl

Cuestiones relacionadas