检查是否有任何祖先有使用jQuery的类
Check if any ancestor has a class using jQuery
在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 */ }
您可以使用parents
方法与指定的.class
选择器并检查是否有任何匹配:
if ($elem.parents('.left').length != 0) {
//someone has this class
}
相关文章:
- 用于多个类事件Jquery的单个函数
- 如何在javascript中找到分配给元素的类(没有jQuery)
- 使用jQuery在类的每个实例上添加随机CSS
- 使用jQuery隐藏和显示具有相同Class的类
- 如何选择使用jquery动态添加的类
- 更改:活动伪类'使用jQuery的样式
- 在jquery中更改img标记的类名
- 用jQuery扩展我的类
- 如何使用jQuery将当前月份添加为DIV的类
- 如何获取在jquery中选择的项的类
- jQuery中的类和substr
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 绑定未来的类在 jQuery 中失败
- 使用 jquery 按类隐藏同一父级中的元素
- 获取单击的类元素 jQuery 的名称值
- 使用if来检测使用jQuery的类
- 在其他项上删除带有Jquery的类
- 获取克隆元素jquery的类
- 正在添加'活动'带有jQuery的类没有'由于特殊性,它不起作用
- 检查是否有任何祖先有使用jQuery的类