选择父元素没有't具有某个类(使用'.not()')
Selecting all elements whose parents don't have a certain class (using '.not()')
我正在尝试选择嵌套在DOM树中某个位置的.select
类的所有元素
唯一的限制是,他们不允许有任何.forbidden
类的父母。
所以它不会在以下树部分中找到任何元素:
<div>
<div class="forbidden">
<div>
<div>
<div class="select">Some Content</div>
</div>
</div>
</div>
</div>
但在这里可以找到一个元素:
<div>
<div>
<div>
<div>
<div>
<div class="select">Some Content</div>
</div>
</div>
</div>
</div>
</div>
如何使用.not()
功能实现此选择?类似于以下内容:$('.select').not($(this).parents().hasClass('.forbidden'));
您需要检查父元素,closest()
会停在该类中找到的第一个元素处,如果选择器有长度,即包含元素,则DOM树上的某个位置就有该类的元素。
$('.select').filter(function(){
return !$(this).closest('.forbidden').length;
});
我不会使用:not
。
但我会使用过滤器:
$('.select').filter(function(){return !$(this).parents().is('.forbidden')});
请注意,如果集合中至少有一个元素(此处为父元素)与选择器匹配,则is将返回true。
$('.select').filter(function() {
return $(this).closest('.forbidden').length == 0;
});
相关文章:
- 选择父元素没有't具有某个类(使用'.not()')
- 使用Angular not Binding引导模式绑定数据
- 如何将getElementsByClassName与jQuery选择器一起使用:not()选择器
- 使用this和not组合两个jQuery语句
- 单击后使用.not()限制选项时出现问题
- 如何在 dojo.on 事件名称的选择器中使用 :not
- 使用 :not() 忽略对子链接的点击
- “ReferenceError: require is not defined”,同时使用 ES6/Babel 创建 R
- 使用 JQUERY-Not 工作添加 Div
- 使用 :not 选择器与 .on() 结合使用
- JavaScript 如何使用 NOT 的索引与选择数组
- 为什么这不起作用 - 将 :not() 与事件处理程序一起使用
- 使用“flickrnode”API时出现“TypeError: undefined is not a function”
- 将 React 与 Nashorn 一起使用会抛出“ReferenceError: 'console' is not d
- 如何使用nextUntil()和not()修复jQuery子菜单手风琴
- 检测具有相同类的其他项目,而不是使用not(this)
- 可以't使用:not()选择器
- Javascript-正则表达式-使用Not运算符
- 使用if-not语句重定向
- 如何使用:not()来针对具有特定父级的常规选择器