Answers:
if ($elem.parents('.left').length) {
}
.length
在JS中将真实值作为处理的做法相当多产,但它更加清晰和易于理解.length > 0
有许多方法可以过滤元素祖先。
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 */ }
Is there any way in jQuery to check if any parent,...
,closest()
检查元素本身所以这是不是真的答题,OP可能希望explecitely排除元素本身,所以你,答案是使用.parents()
您可以将parents
method与指定的.class
选择器一起使用,并检查是否有匹配的选择器:
if ($elem.parents('.left').length != 0) {
//someone has this class
}