jQuery选择不包含类的元素

时间:2018-05-09 14:33:11

标签: javascript jquery

我如何在这里使用not selector?我想选择所有课程" .hi"不包含类" .image"。

HTML

<div class="hi">
  <div class="hue">
    <div class="image">
       456
    </div>
  </div>
</div>

<div class="hi">
  <div class="hue">
    <div class="image">
        123
    </div>
  </div>
</div>

<div class="hi">
  <div class="hue">
    here
  </div>
</div>

JS

我试过这样的事情,但它没有用。

console.log($('.hi').find('.hue > :not(.image')));

1 个答案:

答案 0 :(得分:6)

要使用选择器执行此操作,您可以:not使用:has

$(".hi:not(:has(.image))")
// or to be more specific:
$(".hi:not(:has(.hue > .image))")

请注意:has是特定于jQuery的。

要使用filter执行此操作,您可以在回调中使用find

$(".hi").filter(function() { return $(this).find(".image").length == 0; })
// or to be more specific:
$(".hi").filter(function() { return $(this).find(".hue > .image").length == 0; })