使用jQuery检查是否有任何祖先类

2020/11/02 18:02 · javascript ·  · 0评论

是否有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 */ }

您可以将parentsmethod与指定的.class选择器一起使用并检查是否有匹配的选择器:

if ($elem.parents('.left').length != 0) {
    //someone has this class
}
本文地址:http://javascript.askforanswer.com/shiyongjqueryjianchashifouyourenhezuxianlei.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!