选择一个除外的所有div(Selecting all divs except one)

2019-09-18 02:19发布

<div id="main">
 <div class="a"></div>
 <div class="b"><p>not me</p></div>
 <div class="b"></div>
 <div class="b"></div>
 <div class="c"></div>
</div> 

我们如何可以写一个选择器选择all divs with class b除因孩子是<p>not me</p>

Answer 1:

$('div.b:not(:has(p))').........

或阅读的版本

$('div.b').filter(function(){
    return !$(this).find('p').length;
});

如果您想要的内容相匹配,以及:

$('div.b').filter(function(){
    return $(this).find('p').text() !== "not me";
});

现场演示



Answer 2:

演示 http://jsfiddle.net/46nC5/1/

既然你是专门找class b做了一个演示给你因此分享。

在本演示中,您将看到的不是我越来越淡出,其余部分将保持原样。

即用:not + :has是可以做到的

$('div.b:has(p)').​

要么

$('div.b:not(:has(p))')


Answer 3:

$('div.b').filter(function () {
    return $(this).find('p:contains(not me)').length == 0;
})

的jsfiddle演示



Answer 4:

我usualy做的最好的方法:

$('div.b').filter(function () {
   return !$(this).hasClass('notMe');
});


<div id="main">
     <div class="a"></div>
     <div class="b notMe"><p>not me</p></div>
     <div class="b"></div>
     <div class="b"></div>
     <div class="c"></div>
</div> 


Answer 5:

这将会给你两个DIV谁拥有一流=“b”没有P(段落)

现场演示

$('div.b:not(:has(p))')


Answer 6:

而这里的另一个

$("div.b:contains('not me')")

编辑:对不起,这里没有的

$("div.b:not(:contains('not me'))")


文章来源: Selecting all divs except one