2012-05-02 26 views
5

Tôi có phần tử DOM elem có phần tử tổ tiên có lớp myClass (cách khác là thuộc tính có một số tên). Vấn đề là Tôi cần phải tìm tổ tiên này một cách dễ dàng với jQuery. Hiện nay, tôi đang mắc kẹt với xấu xí thứ thử-và-lỗi nhưTìm tổ tiên với thuộc tính hoặc lớp cụ thể trong jQuery

var ancestor = $(elem).parent().parent().parent().parent().parent().parent().parent(); 

Nếu những thay đổi mã HTML, mã jQuery dễ dàng phá vỡ.

Có thể tìm phần tử tổ tiên với mã jQuery thanh lịch hơn không?

+0

Duplicate của (http://stackoverflow.com/questions/2867022/how-to-select-first- tổ tiên-đó-phù hợp-một-chọn) –

+0

@TJ Crowder: Xin lỗi, tôi đã bỏ lỡ bài đăng đó. – Gruber

Trả lời

7

Sử dụng closest(), nó sẽ duyệt DOM từ phần tử hiện tại cho đến khi tìm thấy phần tử gốc khớp với bộ chọn bạn cung cấp.

var ancestor = $(elem).closest(".myClass"); 

Docs

+0

Cảm ơn, tôi sẽ kiểm tra. – Gruber

1

Hãy thử

var ancestor = $(elem).closest(selector what are you looking for); 
+0

Cảm ơn, dunno làm thế nào tôi có thể đã bỏ lỡ một. – Gruber

2

phương pháp mới được thêm vào bởi jQuery, các parents chức năng cho phép bạn kiểm tra tất cả các bậc cha mẹ với bộ chọn.

var ancestor = $(elem).parents(".myClass");

2

Chỉ class giải pháp được trình bày, nhưng không phải là attribute một.

Tôi tìm thấy câu trả lời của tôi ở đây: [? Làm thế nào để Chọn Tổ tiên Đầu tiên phù hợp với một Selector] jQuery find closest parent link with attribute

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