是否有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
method与指定的.class
选择器一起使用,并检查是否有匹配的选择器:
if ($elem.parents('.left').length != 0) {
//someone has this class
}
本文地址:http://javascript.askforanswer.com/shiyongjqueryjianchashifouyourenhezuxianlei.html
文章标签:html , javascript , jquery , jquery-1.7 , jquery-selectors
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:html , javascript , jquery , jquery-1.7 , jquery-selectors
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!