6

[編集]質問を言い換えて、例を削除しました。あなたを混乱させているようです。ご迷惑をおかけして申し訳ありません。

セレクターに一致する最初の子孫を一致させる必要があります。

複数の要素がこのセレクターに一致するが、別々のツリーにある場合 (つまり、一方が別の親でない場合)、それらの両方を選択したいと考えています。

正確な DOM 構造は不明であるため.children( )>セレクターなどの関数を使用することはできません (ユーザーが実際の DOM 構造について確実であることを期待しているため)。

私が実際に必要としているのは.closest( )関数のように見えますが、親ではなく子を照合し、一度に複数の子を照合する可能性があります。

4

2 に答える 2

1

から始まるすべてのツリー#Bは、によって定義され.children()ます。.fooそのようなツリー内のすべての最初は.find('.foo:eq(0)')であるため、これを使用できるはずです:

$('#B').children(':not(.foo)').andSelf().find('.foo:eq(0)');
于 2012-11-19T05:41:55.797 に答える
0

jQueryプラグインclosestDescendantを使用できます

これは幅優先検索を実装するため、現在の要素のすべての子を次のレベルに進む前にチェックします。

プラグインをロードするか、ソースコードに追加した後、次の方法で簡単に呼び出すことができます。

jQuery('#parent').closestDescendant(".selector", true)

ここで、その関数のデモを見つけることができます: demo closestDescendant

于 2013-04-09T21:04:37.530 に答える