2010-07-08 23 views
28

Ho una lista come questa:jQuery - ottenere l'indice di un elemento con una certa classe

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

voglio scoprire l'indice (numero nella lista) della voce con la "attiva "elemento di classe. in questo caso l'indice sarebbe 4 (o 3 se stiamo iniziando da 0) Come posso farlo?

risposta

57

Con il .index(): esempio

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

Lavorare qui:

http://jsfiddle.net/EcZZL/

Edit - link alla api aggiunto per .index() per il consiglio di Nick

+0

Cosa succede se il selettore è '$ (this) .hasClass (" myClass ")'? Non ha una funzione index(). – SearchForKnowledge

+0

'var g = parseInt ($ ('div.slideIsActive'). Index()) + 1;' mi dà '1' ma questo' var index = $ (this) .find ("div.slideIsActive"). Index() + 1; 'mi dà' 0'. Come posso modificare per ottenere '1' usando la parola chiave' this'. – SearchForKnowledge

10

Ti piace questa:

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

.index() senza parametri fornisce l'indice dell'elemento rispetto ai suoi fratelli, che è ciò che si desidera in questo caso.

+1

Questa mattina sembra che abbia avuto il primo caffè Nick;) – HurnsMobile

+3

@HurnsMobile - Effettivamente :) Assicurati di fornire un link alle funzioni appropriate che stai utilizzando, se possibile, aiuta i futuri googler ... più ancora con '. index() 'perché ha diversi usi molto diversi :) –

+0

Una risposta precisa e concisa. Molto apprezzato!!! –

Problemi correlati