Check if any ancestor has a class using jQuery Check if any ancestor has a class using jQuery javascript javascript

Check if any ancestor has a class using jQuery


There are many ways to filter for element ancestors.

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 *')) {/*...*/} 

Beware, closest() method includes element itself while checking for selector.

Alternatively, if you have a unique selector matching the $elem, e.g #myElem, you can use:

if ($('.parentClass:has(#myElem)').length /* > 0*/) {/*...*/}if(document.querySelector('.parentClass #myElem')) {/*...*/}

If you want to match an element depending any of its ancestor class for styling purpose only, just use a CSS rule:

.parentClass #myElem { /* CSS property set */ }


You can use parents method with specified .class selector and check if any of them matches it:

if ($elem.parents('.left').length != 0) {    //someone has this class}