2010-07-08 31 views
28

tôi có một danh sách như thế này:jQuery - được chỉ số của một phần tử với một lớp nhất định

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

Tôi muốn tìm hiểu chỉ số (số trong danh sách) của mặt hàng đó với các "hoạt động "phần tử lớp. trong trường hợp này chỉ số sẽ là 4 (hoặc 3 nếu chúng tôi bắt đầu từ 0) Tôi có thể làm điều đó như thế nào?

Trả lời

57

Với .index(): ví dụ

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

Làm việc ở đây:

http://jsfiddle.net/EcZZL/

Edit - liên kết đến các api thêm cho .index() mỗi lời khuyên của Nick

+0

Điều gì xảy ra nếu bộ chọn là '$ (this) .hasClass (" myClass ")'? Nó không có hàm index(). – SearchForKnowledge

+0

'var g = parseInt ($ ('div.slideIsActive'). Index()) + 1;' cho tôi '1' nhưng' var index = $ (this) .find ("div.slideIsActive").() + 1; 'cho tôi' 0'. Làm thế nào tôi có thể chỉnh sửa để có được '1' bằng cách sử dụng từ khóa' this'. – SearchForKnowledge

10

Như thế này:

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

.index() không có tham số cho chỉ mục của phần tử liên quan đến anh chị em của nó, đó là những gì bạn muốn trong trường hợp này.

+1

Có vẻ như tôi đã có ly cà phê đầu tiên sáng nay Nick;) – HurnsMobile

+3

@HurnsMobile - Thật vậy :) Hãy đảm bảo cung cấp liên kết đến các chức năng thích hợp bạn đang sử dụng nếu có thể, giúp các googlers trong tương lai ... nhiều hơn như vậy với '. index() 'vì nó có một số cách sử dụng rất khác nhau :) –

+0

Câu trả lời chính xác và súc tích. Nhiều đánh giá cao!!! –

Các vấn đề liên quan