我想在子页面不包含具有特定类的元素的页面上选择所有div。
我可以选择其后代执行包含以下类的元素:
$('div').has('.myClass');
所以我只想要反过来。
答案 0 :(得分:11)
我会使用“.filter()”:
var theDivs = $('div').filter(function() {
return $(this).find('.myclass').length === 0;
});
答案 1 :(得分:5)
一个简单的$("div:not(:has(.myClass))")
将完成这项工作。
它如何在jQuery内部工作?
1)$("div")
- 从文档中获取所有DIV。
2):not(:has(.myClass))
- 这是两个嵌套在另一个中的语句。现在jQuery在上面的步骤中对结果DIV执行:has(.myClass)
并获取类名为'myClass'的所有DIV
3):not()
- 这个伪选择器方法将应用于来自步骤1的所有DIV对抗由第二个语句产生的DIV,以找到没有'.myClass'的DIV。这可以通过循环遍历步骤1中的所有DIV并比较第二步中的DIV来实现。
答案 2 :(得分:3)
$('div:not(:has(*>.myClass))');
答案 3 :(得分:1)
$('div').has(':not(.myClass)');