2010-07-08 17 views
28

Mam listę jak ten:jQuery - dostać indeks elementu z pewnej klasy

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

Chcę dowiedzieć się indeks (numer na liście) pozycji z „aktywnym "element klasy. w tym przypadku indeks wynosi 4 (lub 3, jeśli zaczynamy od 0) Jak mogę to zrobić?

Odpowiedz

57

Z .index(): przykład

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

pracy tutaj:

http://jsfiddle.net/EcZZL/

Edit - dodaje odnośnik do API dla .index() za radą Nicka

+0

Co zrobić, jeśli selektorem jest '$ (this) .hasClass (" myClass ")'? Nie ma funkcji index(). – SearchForKnowledge

+0

'var g = parseInt ($ ('div.slideIsActive'). Index()) + 1;' daje mi '1' ale ten' var index = $ (this) .find ("div.slideIsActive"). Index() + 1; 'daje mi' 0'. Jak mogę edytować, aby uzyskać '1' używając słowa kluczowego' this'. – SearchForKnowledge

10

tak:

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

.index() bez parametrów podaje indeks elementu względem jego rodzeństwa, czyli tego, czego chcesz w tym przypadku.

+1

Wygląda na to, że miałem dziś rano pierwszą filiżankę kawy Nick;) – HurnsMobile

+3

@HurnsMobile - Rzeczywiście :) Upewnij się, że podasz link do odpowiednich funkcji, których używasz, pomaga przyszłym pracownikom Google ... w większym stopniu dzięki '. index() 'ponieważ ma kilka bardzo różnych zastosowań :) –

+0

Dokładna i zwięzła odpowiedź. Bardzo doceniane !!! –

Powiązane problemy