2010-07-30 48 views
9
<ul> 
    <li>No</li> 
    <li>Yes</li> 
    <li>No</li> 
</ul> 

//demostration purpose 
$('ul').get(2).text(); 


//output = Yes 

Cách tốt nhất để truy cập một mục cụ thể trong danh sách là gì? và sử dụng nó làm công cụ chọn?jquery tìm theo chỉ mục trong danh sách

Trả lời

19

Bạn có thể sử dụng .eq() hoặc :eq() để có được những đối tượng jQuery trong một danh sách:

$('ul li').eq(1).text(); 
//or: 
$('ul :eq(1)').text(); 

You can try a demo here. Khi bạn nhận được .get(), bạn sẽ nhận được phần tử DOM, không có bất kỳ hàm jQuery nào trên đó. Hãy nhớ rằng cả hai trường hợp này là dựa trên 0 do đó bạn sẽ cần 1 để nhận được "Có" trong ví dụ của mình.

Ngoài ra còn có khác basic filters you may be interested in, ví dụ :lt() (chỉ số ít hơn), :gt() (index lớn hơn hơn), :first, :last và một số người khác.

+1

@Andy - Đã được nhận thấy trong trang ví dụ của tôi, chỉ cần thức dậy :) –

+0

'thứ n-con (n) 'không chấp nhận một số zero-based vì vậy tôi được sử dụng để luôn nhầm lẫn cả hai và phải kiểm tra kỹ. Thực sự, đó là lỗi của spec khi không nhất quán. Dù sao, tôi chỉ chỉnh sửa nó để biện minh cho +1 của tôi: p –

+0

@Andy - Đồng ý, tôi xem xét ': nth-child() 'một đứa con đầu đỏ ở thời điểm này, tôi thực sự hiếm khi sử dụng điều này trong thực tế hàng ngày sử dụng anyway. Có lẽ một khi chúng tôi thả hỗ trợ cho IE7 * và * IE8 (đã giảm 6, wooohoo!) Tôi có thể bắt đầu sử dụng nó cho một cái gì đó trong CSS, nhưng trong jQuery tôi đã tìm thấy nó không phải là rất hữu ích ở tất cả. –

1

Sử dụng :eq lọc selector:

$('ul li:eq(0)').text(); // gets first li 
$('ul li:eq(1)').text(); // gets second li 
$('ul li:eq(2)').text(); // gets third li 
// and so on 
+0

một sự khác biệt phút – Prabs

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