jQueryセレクターを使用すると、別のセレクターの要素の子孫でないすべての要素を選択できます。指定された要素の子孫でないすべての要素を選択します。
たとえば、でないa
のタグをで、th
というタグの子孫をすべて選択したいとします。あなたは:not
を使用することができますが、子孫を探していると仮定すると、
$('a').filter(function() {
return $(this).closest('th').size() == 0
})
jQueryセレクターを使用すると、別のセレクターの要素の子孫でないすべての要素を選択できます。指定された要素の子孫でないすべての要素を選択します。
たとえば、でないa
のタグをで、th
というタグの子孫をすべて選択したいとします。あなたは:not
を使用することができますが、子孫を探していると仮定すると、
$('a').filter(function() {
return $(this).closest('th').size() == 0
})
(th
要素に兄弟としてa
素子を有することから、有効なHTMLではありません):次のように私は今それを行うには見ることができる唯一の方法です
$('a:not(th a)');
これはdocument.querySelectorAll
を使用して近代的なブラウザではかなり高速である必要がありますが、IEの古いバージョンのためのオリジナルよりも遅くなる場合があります。これを行うには、疑似セレクタ。
ここに簡単なデモを参照してください:あなたは、あなたの質問は(関係なく、無効なHTML事実の)要求してやると、特定の兄弟を持つ要素をフィルタリングしたいと仮定するとhttp://jsfiddle.net/JR5sP/
なぜ私は ':not 'セレクタがこれをしないと思ったのですか?デモも素晴らしかったです。 – tjwallace
、
をあなたが行うことができますこの:
$('a').filter(function() {
return $(this).siblings('b').length == 0;
}).css('color', 'orange');
HTML:
<div>
<b>Hello there</b>
<a>Don't select me!</a>
</div>
<div>
<a>Select me!</a>
<a>Select me too!</a>
</div>
兄弟または子孫を意味しますか?あなたのコードは後者を示唆しています – lonesomeday
@lonesomedayが意味するように、** 'a'要素*は' th'要素**の兄弟であることはできません**。あなたは作業しているhtmlを投稿できますか? –
'th'タグの兄弟である' a'タグを持つことは有効ではありません – Petah