2010-08-30 31 views
6

Tôi có ul với một số li bên trong. Tất cả các li có một id "#category" nhưng các lớp khác nhau (như ".tools", ".milk", ".apple").jQuery, tìm tên nhóm li (bên trong ul)

Sử dụng jQuery. Tôi làm:

$("li#category").click(function(){ some_other_thing (....)}); 

bây giờ tôi có phải đặt class "tên" của một li - (một chuỗi thực sự) bên trong some_other_thing() chức năng thay vì ....

Làm thế nào nó có thể được thực hiện?

Trả lời

3

Hãy coi chừng id phải là duy nhất! Bạn đang đề xuất rằng mỗi thành phần li có cùng một số id. Bạn có thể muốn thay thế nó bằng một class, ví dụ .:

<ul> 
    <li class="category tools" /> 
    <li class="category milk" /> 
</ul> 

Sau đó chọn với:

$('li.category').click(function(){}); 
0

Nếu tôi hiểu được điều này một cách chính xác, vấn đề là bạn không thể có nhiều li với cùng một ID. Bạn chỉ có thể có một ID duy nhất trên mỗi trang. Những gì bạn có thể muốn là thay đổi ID thành lớp. Vì vậy, bạn muốn có một cái gì đó dọc theo những dòng này.
<ul>
<li class="category milK">Chocolate</li>
<li class="category tool">Big Hammer</li>
</ul>

Sau đó, bạn có thể tìm kiếm với $("li.category").click(function() {....});

4

ID phải là duy nhất trong một tài liệu, vì vậy có nhiều yếu tố <li> với id "category" không hợp lệ. Thay đổi điều đó thành một lớp hoặc một thuộc tính dữ liệu hoặc một cái gì đó khác. Hoặc chỉ cần gán một lớp cho phụ huynh <ul> để bạn có thể dễ dàng truy xuất tất cả các li bên trong nó.

<ul id="categories"> 
    <li class="tools"> 
    <li class="milk"> 
</ul> 

Nhận tất cả số điện thoại và chỉ định trình xử lý nhấp chuột.

$('#categories li').click(function() { 
    var className = $(this).attr('class'); 
    some_other_thing(className); 
}); 
1

Phần tử li của bạn cần có ID duy nhất. Khi họ làm, bạn có thể chọn tất cả các trẻ em li của ul với ">" điều hành:

var ul_elem = $("#id_of_ul"); 
$("> li", ul_elem).click(...); 

HOẶC

$("#id_of_ul > li").click(...); 

HOẶC

$("ul.classname > li").click(...); 
Các vấn đề liên quan