Select要素を含む多くの要素を含むdiv(idは「コンテナ」だとしましょう)があります。 div内のselect以外のすべてを選択したいと思います。私が試したこと:
$("#container *:not(select)")
$("#container *:not(#selectorid)")
//put a div around the select and...
$("#container *:not(#selectorcontainer)")
$("#container *:not(#selectorcontainer *)")
$("#container *:not(#selectorcontainer, #selectorcontainer *)")
また、ワイルドカードの子孫セレクターを使用せずに試してみたので、上記と同様に、
$("#container:not(#selectorid)")
この場合はオプションであるため、ワイルドカードを単純に省略できますが、スペースは保持します。
_$('#container :not(select)');
_
または、すべての子を選択した後、.not()メソッドを使用して選択を除外します。
_$('#container').children().not('select');
_
select
の子がまだ含まれているという問題がある場合は、.not()メソッドを使用してそれらを明示的に除外できます。
_$('#container').children().not('select, option, optgroup');
_
または、直接の子のみを選択します。
_$('#container > :not(select)');
_
インタラクティブjQueryセレクターテスター でjQueryセレクターを試すことができます。例えばdiv :not(ol)
またはdiv > :not(ol)
を試して、直接の子(_>
_)セレクターがどのような違いをもたらすかを感じてください。
トラバースメソッドを使用して試すこともできます。
$('#container').children().not('#selectorId');
または最終オプションであること:
$('#container').children().filter(function(){
return $(this).attr('id') !== 'selectorId';
}
:not
_、および.not()
を使用して選択およびフィルタリング" Live Demo:not(selector)
はまさにこれを行い、いくつかのスタイルがあります。 selector、またはmethodを使用できます。以下は、セレクターの使用例です。
_$("#container :not(select)");
_
これは、_#container
_内のすべての子、つまりnot_<select>
_要素と一致します。それから、同じ名前で行われますが、異なる方法で実行される必要があるメソッドの除外の方法があります。
_$("#container").children().not("select");
_
これは、一致した要素のchildren
に対して実行されます。この場合、_.not
_はフィルターとして機能します。 .filter()
を使用して目的の結果を取得する次の例に進みます。このメソッドを使用すると、結果を調べて独自のカスタム関数を提供し、必要なものを選択できます。
.filter()
を使用して一致した要素をフィルタリング" Live Demo_$( "#container" ).children().filter( isNotSELECT ).fadeTo( "slow", .5 );
function isNotSELECT () {
// Returns TRUE if element is NOT select
return !$(this).is("select");
}
_
この例では、_#container
_のすべての子を選択し、「isNotSelect」と呼ばれる定義済みのフィルターにそれらを渡します。フィルター内では、すべての要素に対してtrue
またはfalse
を返します。 true
を返す場合、その要素は結果セットに返されます。 false
を返す場合、その要素は結果セットから削除されます。要素がnotselectかどうかを尋ねています。これにより、すべての選択要素に対してfalse
が返され、コレクションから削除されます。
$(#container select).siblings()
特定のオブジェクト以外のすべてのJQueryクリックハンドラー
この問題に対する2つのアプローチ: 8票 のアプローチがおそらくあなたが探しているものです。
多分これは3が#selectであるあなたを助けることができます
次のいずれかを試してください。
$("#container *:not(eq(3))");
$("#container").children().filter(:not(eq(3)));
あなたが質問から実際に何を望んでいるかは明らかではありません。 :not(select)は、すべての子孫からselectを除外しますが、select子孫からは除外しません。これが問題の場合は、次を試してください
$("#container *").filter( function(){
return $(this).closest('select').length === 0
})