2010-07-08 21 views
28

Tengo una lista como ésta:jQuery - Obtener el índice de un elemento con una cierta clase

<li> .... </li> 
<li> .... </li> 
<li> .... </li> 
<li class="active"> .... </li> 
<li> .... </li> 

Quiero averiguar el índice (número de la lista) del elemento con el "activo "elemento de clase. en este caso, el índice sería 4 (o 3 si estamos comenzando desde 0) ¿Cómo puedo hacer eso?

Respuesta

57

Con la .index(): ejemplo

$('li.active').index() 

Trabajar aquí:

http://jsfiddle.net/EcZZL/

Editar - enlace de la API añadido para .index() por el consejo de Nick

+0

¿Qué sucede si el selector es '$ (this) .hasClass (" myClass ")'? No tiene una función de índice(). – SearchForKnowledge

+0

'var g = parseInt ($ ('div.slideIsActive'). Index()) + 1;' me da '1' pero este' var index = $ (this) .find ("div.slideIsActive"). Index() + 1; 'me da' 0'. ¿Cómo puedo editar para obtener '1' usando la palabra clave' this'. – SearchForKnowledge

10

De esta manera:

var index = $("ul li.active").index(); 

.index() sin parámetros da el índice del elemento con respecto a sus hermanos, que es lo que quiere en este caso.

+1

Parece que tuve la primera taza de café esta mañana Nick;) – HurnsMobile

+3

@HurnsMobile - De hecho :) Asegúrese de dar un enlace a las funciones apropiadas que está utilizando, si es posible, ayuda a los futuros googlers ... más aún con '. index() 'porque tiene varios usos muy diferentes :) –

+0

Una respuesta precisa y concisa. ¡¡¡Muy apreciado!!! –

Cuestiones relacionadas