私はそれが動作していないのはなぜサブクラスを持つjQueryの兄弟ですか?
http://jsbin.com/uyirim/edit#javascript,html
'.divAbs'
クラスが含まれている'.divRe'
クラスがあり、クリックされた要素の全ての「siblings
」を取得したいですか? docsから
(その長さは「」であると仮定する。)
私はそれが動作していないのはなぜサブクラスを持つjQueryの兄弟ですか?
http://jsbin.com/uyirim/edit#javascript,html
'.divAbs'
クラスが含まれている'.divRe'
クラスがあり、クリックされた要素の全ての「siblings
」を取得したいですか? docsから
(その長さは「」であると仮定する。)
:
は、任意選択によりフィルタリング整合要素の組の各要素の兄弟を取得します。
リンクの兄弟はdiv
であり、セレクタ.divRe .divAbs
と一致しません。 $('.divRe').is('.divRe .divAbs')
はfalse
を返します。あなたが.find()
とそれを組み合わせるしたい
:
$(this).siblings(".divRe").find(".divAbs")
編集:あなたは.has
の代わり.find
後に実際にあるようにされているは思えます。他の答えを見てください。
.divRe .divAbsはdivAbs内にあるすべてのdivReを示します... divAbs ...いいえ? –
@RoyiNamir:セレクタを渡している関数によって異なります。ドキュメントをもう一度読んでください。 '.siblings()'は要素のすべての兄弟のリストを取得します。あなたの場合、唯一の兄弟は 'div'です。セレクタに一致する要素だけを保持し、 'div'は' .divRe .divAbs'と一致しません。この場合、selectorは* finding *要素に*使用されません。すでに存在する要素(兄弟)のセットに対して*フィルタリングするために使用されます。 –
セレクタ".divRe .divAbs"
は、兄弟ではない内側のdiv .divAbs
に一致します。
あなたはhas()
使用することができます。.divReが複数のを持っている場合(たとえば2).divAbsこの
$(this).siblings(".divRe").find(".divAbs").length
戻ります
$(this).siblings(".divRe").has(".divAbs").length
説明が正しくありません。この文脈では、 '' .divRe .divAbs ''は' divAbs'クラスと 'divRe'クラスを持つ祖先を持つ要素にマッチします。 –
@FelixKlingええ、あなたは書いてあります。 – xdazz
@xdazz、これは正しくありません。 both.aと.b so $( ".a.b")が必要な場合 –
私は英語が母国語ではないかもしれないことを理解していますが、あなたが何を言おうとしているのか分かりません。 – switz