<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;
})
私が通常行う最善の方法:
$('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:contains('not me')")
編集:申し訳ありませんが、ここではありません
$("div.b:not(:contains('not me'))")