[英]Select elements whose children don't contain specific elements in jQuery
我想选择子页面上不包含具有特定类的元素的所有div。
我可以选择其后代确实包含类的元素:
$('div').has('.myClass');
所以我只想要反过来。
我用“.filter()”:
var theDivs = $('div').filter(function() {
return $(this).find('.myclass').length === 0;
});
一个简单的$("div:not(:has(.myClass))")
将完成这项工作。
它在jQuery内部如何工作?
1) $("div")
- 从文档中获取所有DIV。
2) :not(:has(.myClass))
- 这两个语句嵌套在另一个语句中。 现在jQuery执行:has(.myClass)
在上面的步骤中对结果DIV执行:has(.myClass)
并获取类名为“myClass”的所有DIV
3) :not()
- 这个伪选择器方法将应用于来自步骤1的所有DIV对抗由第二个语句产生的DIV,以找到没有'.myClass'的DIV。 这可以通过循环遍历步骤1中的所有DIV并比较第二步中的DIV来实现。
$('div:not(:has(*>.myClass))');
$('div').has(':not(.myClass)');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.