2011-01-17 40 views
39
<ul><li><div><div><span id="thisid"></span></div></div></li></ul> 

$('#thisid').parent('li'); 

rõ ràng là không hoạt động, nhưng làm cách nào để lấy phần tử li? Tôi không muốn sử dụng:JQuery, tìm phụ huynh

$('#this').parent().parent().parent(); 

Tôi không muốn sử dụng vì có thể chỉ có một phần tử div thay vì hai. Trong trường hợp này, tôi sẽ lấy phần tử ul thay vì phần tử li.

Trả lời

76
$('#thisid').parents('li'); 
//    ^plural! 

Lưu ý rằng nếu bạn chỉ muốn <li> phần tử đầu tiên trong tổ tiên, bạn nên sử dụng closest():

$('#thisid').closest('li'); 

// `closest()` is equivalent to (but performs better than) 
$('#thisid').parents('li').eq(0); 
$('#thisid').parents('li').first(); 
+2

Tất cả bốn ví dụ là giải pháp tuyệt vời. – Moses

+0

Chỉ muốn làm cho nó rõ ràng rằng số ít "cha mẹ()" * là * một cuộc gọi chức năng hợp lệ; nó không làm những gì mà người hỏi hỏi đang cần. – mwardm

1

đơn giản, sử dụng parents()

var parents = $("#thisid").parents('li'); 
2

Nên làm điều đó. Điều này sẽ cung cấp cho bạn phụ huynh đầu tiên (:eq(0)) khớp với thẻ bạn đang tìm kiếm.

6
$('#thisid').parents('li') 

hoặc nếu bạn chỉ muốn là người đầu tiên:

$('#thisid').closest('li') 
0

Bạn thực sự có thể muốn sử dụng $("#thisid").closest('li'). Điều này đi qua cây DOM từ nút đã chọn và trả về tổ tiên phù hợp đầu tiên trong khi .parents() di chuyển từ nút cha và trả về tất cả các nút tổ tiên phù hợp với bộ lọc đó. Xem here để biết thêm thông tin.

1

Tôi thích 'gần nhất' hơn 'cha mẹ'.

Cha mẹ di chuyển cây DOM lên phần tử gốc của tài liệu, thêm từng phần tử tổ tiên vào bộ sưu tập tạm thời; sau đó lọc bộ sưu tập đó dựa trên bộ chọn nếu bộ chọn được cung cấp.

trong đó

Đón gần nhất lên cây DOM cho đến khi tìm thấy kết quả phù hợp cho bộ chọn được cung cấp.

quan trọng Hầu hết những gì họ đưa ra trong kết quả:

Praents: trả lại jQuery đối tượng chứa zero hoặc nhiều yếu tố cho mỗi phần tử trong bộ hồ sơ gốc theo thứ tự tài liệu ngược lại.

gần nhất: trả lại jQuery đối tượng chứa zero hoặc một yếu tố cho mỗi phần tử trong bộ hồ sơ gốc theo thứ tự tài liệu

$('#thisid').closest('li'); 

Follow this Link

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