使用jQuery检查是否有任何祖先有类
2022-08-30 01:57:04
在jQuery中,有没有办法检查是否有任何父级,祖父母,曾祖父母有类。
我有一个标记结构,让我在代码中做这样的事情:
$(elem).parent().parent().parent().parent().hasClass('left')
但是,为了代码的可读性,我想避免这种事情。有没有办法说“任何父母/祖父母/曾祖父母都有这个班级”?
我正在使用jQuery 1.7.2。
在jQuery中,有没有办法检查是否有任何父级,祖父母,曾祖父母有类。
我有一个标记结构,让我在代码中做这样的事情:
$(elem).parent().parent().parent().parent().hasClass('left')
但是,为了代码的可读性,我想避免这种事情。有没有办法说“任何父母/祖父母/曾祖父母都有这个班级”?
我正在使用jQuery 1.7.2。
if ($elem.parents('.left').length) {
}
有许多方法可以筛选元素祖先。
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 */ }