Có nhiều cách để lọc cho tổ tiên nguyên tố.
if ($elem.closest('.parentClass').length /* > 0*/) {/*...*/}
if ($elem.parents('.parentClass').length /* > 0*/) {/*...*/}
if ($elem.parents().hasClass('parentClass')) {/*...*/}
if ($('.parentClass').has($elem).length /* > 0*/) {/*...*/}
if ($elem.is('.parentClass *')) {/*...*/}
Coi chừng , closest()
phương thức bao gồm chính phần tử trong khi kiểm tra bộ chọn.
Ngoài ra, nếu bạn có một bộ chọn duy nhất phù hợp với $elem
, ví dụ: #myElem
bạn có thể sử dụng:
if ($('.parentClass:has(#myElem)').length /* > 0*/) {/*...*/}
if(document.querySelector('.parentClass #myElem')) {/*...*/}
Nếu bạn muốn khớp một phần tử tùy thuộc vào bất kỳ lớp tổ tiên nào của nó cho mục đích tạo kiểu, chỉ cần sử dụng quy tắc CSS :
.parentClass #myElem { /* CSS property set */ }