什么是正确的jquery选择器,以基于该div内的内容获取div的所有实例?

时间:2014-02-16 03:08:52

标签: jquery jquery-selectors

我有以下html:

<div class="list">
 <div class="sortable">
        <div class="contentItem"> Some content </div>
        <div class="contentItem"> Some content </div>
        <div class="contentItem"> Some content </div>
 </div>
</div>

<div class="list">
 <div class="sortable">
 </div>
</div>

<div class="list">
 <div class="sortable">
        <div class="contentItem"> Some content </div>
        <div class="contentItem"> Some content </div>
        <div class="contentItem"> Some content </div>
 </div>
 </div>

 <div class="list">
 <div class="sortable">
 </div>
 </div>

我试图隐藏所有没有“contentItem”div的“list”类。所以它基本上采取这个

 $(".list").hide();   

会隐藏所有但忽略其中包含“contentItem”元素的

这可以作为jquery选择器吗?

4 个答案:

答案 0 :(得分:4)

使用:not():has()

$(".list:not(:has('.contentItem'))").hide(); 

Fiddle Demo

答案 1 :(得分:2)

您可以使用:not():has()伪选择器来完成任务。

尝试,

 $(".list:not(:has('.contentItem'))").hide(); 

DEMO

答案 2 :(得分:2)

您可以使用not()has() selectors来执行此操作

$('.list').not(':has(.contentItem)').hide()

演示:Fiddle

答案 3 :(得分:0)

您可以使用以下选择器选择其中没有.list的{​​{1}}元素:

.contentItem

隐藏只需添加$(".list").not(":has(.contentItem)") $(".list:not(:has('.contentItem'))")

.hide()