<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>
<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>
$('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";
});
现场演示
演示 http://jsfiddle.net/46nC5/1/
既然你是专门找class b
做了一个演示给你因此分享。
在本演示中,您将看到的不是我越来越淡出,其余部分将保持原样。
即用:not
+ :has
是可以做到的
码
$('div.b:has(p)').
要么
$('div.b:not(:has(p))')
$('div.b').filter(function () {
return $(this).find('p:contains(not me)').length == 0;
})
的jsfiddle演示
我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>
这将会给你两个DIV谁拥有一流=“b”和没有P(段落)
现场演示
$('div.b:not(:has(p))')
而这里的另一个
$("div.b:contains('not me')")
编辑:对不起,这里没有的
$("div.b:not(:contains('not me'))")