如何用jQuery选择class为a下非ab子元素内的class为ac的div?
选中
.a元素内但不在.ab元素中的.ac元素 要筛选出处于.a容器内,但不被.ab元素包裹的.ac元素,可以用以下几种jQuery选择器方案:
方案1:使用:not()伪类直接组合选择器
直接在选择器中排除掉.ab后代里的.ac:
$('.a .ac:not(.ab .ac)')
原理:先匹配所有.a下的.ac元素,再剔除掉那些同时属于.ab后代的.ac。
方案2:使用.not()方法过滤结果
先选中所有.a下的.ac,再通过.not()方法移除不符合条件的元素:
$('.a .ac').not('.ab .ac')
这种写法逻辑更直观,适合复杂筛选场景。
验证示例
针对你提供的HTML结构:
<div class="a"> <div class="ab"> <div class="ac"></div> <!-- 会被排除 --> </div> <div class="ac"></div> <!-- 会被选中 --> </div>
以上两种方案都会精准选中第二个.ac元素,不会包含.ab内部的那个。
内容的提问来源于stack exchange,提问作者kosnkov
相关产品推荐
相关产品推荐

