选择其子元素在jQuery中不包含特定元素的元素

时间:2011-02-24 16:34:28

标签: javascript jquery

我想在子页面包含具有特定类的元素的页面上选择所有div。

我可以选择其后代执行包含以下类的元素:

$('div').has('.myClass');

所以我只想要反过来。

4 个答案:

答案 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)');