Існує багато способів фільтрації за предками елементів.
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 *')) {/*...*/}
Остерігайся ,closest()
метод включає сам елемент під час перевірки на вибір.
Крім того, якщо у вас є унікальний селектор, який відповідає $elem
, наприклад #myElem
, ви можете використовувати:
if ($('.parentClass:has(#myElem)').length /* > 0*/) {/*...*/}
if(document.querySelector('.parentClass #myElem')) {/*...*/}
Якщо ви хочете відповідати елементу залежно від будь-якого класу предків лише для цілей стилізації, просто використовуйте правило CSS :
.parentClass #myElem { /* CSS property set */ }