の兄弟の子を選択するにはどうすればよいですか$(this)
。このような複雑なセレクターは、私の得意分野ではありません。コンビネータを使用して、これの兄弟を取得しようとしました+
。しかし、これと組み合わせると混乱します。$(this
a の後にa が表示されたときの意味がわかりません, something)
$(this, '+ input.in')
と同じものを選択するだけのように見えるので役に立ちません$(this)
。
ありがとう!
の兄弟の子を選択するにはどうすればよいですか$(this)
。このような複雑なセレクターは、私の得意分野ではありません。コンビネータを使用して、これの兄弟を取得しようとしました+
。しかし、これと組み合わせると混乱します。$(this
a の後にa が表示されたときの意味がわかりません, something)
$(this, '+ input.in')
と同じものを選択するだけのように見えるので役に立ちません$(this)
。
ありがとう!
次のようなものを簡単に使用できます。
$(this).next('input.in').children(selector)
または
$(this).next('input.in').find(selector)
ターゲット セレクターが直接の子でない場合は、後者を使用します。input.in
心配する必要があるthis
場合は、セレクターだけで作業しているわけではありません。jQuery API を使用して、その他の要素や異なる要素を探す場所を指定する必要があります。兄弟の検索は、状況に応じて.next()
、.previous()
、またはで実行できます。.parent().children(selector)
構造$(this, selector)
はほぼ間違い$(selector, this)
ですが、 と同じ$(this).find(selector)
です。
基本.siblings(selector)
的に と同じであることを指摘する以下のコメントに注意してください.parent().children(selector)
。
selectorthis
のコンテキストとして使用するには、パラメーターを交換する必要があります: . また、入力の子を選択する兄弟にa を使用するのを忘れました。$('+ input.in', this)
*
$('+ * input.in', this);
(はい、これは本当にうまくいきます)。ただし、jQuery メソッドを使用して DOM をナビゲートすると、より明確になります。
$(this).next().find("input.in")
jQuery の CSS セレクターは、一連の要素 (例: .filter()
, .not()
) をフィルタリングするか、子孫要素 (例: $('.foo') でドキュメント全体を検索し、$('foo', data) で別のオブジェクトを検索するために使用されます。 AJAX レスポンスや、要素のコンテンツを検索する someElement.find('.foo') など)。あなたの場合、単一の要素があり、ターゲット要素が含まれていないため、使用するセレクターに関係なく、これらのどれもそれを見ることができません。
ただし、「兄弟」という言葉の使用は、使用する適切な機能を示唆しています。すべての兄弟を見つけたら、セレクターを使用してそのリストをフィルタリングできます。jQueryを使用すると、これをすべて一度に実行できるため、例は次のようになります$(this).siblings('input.in')