0

私はアイテムをトラバース選択するために最も近いものを使用したい、以下のように私のhtml:

<span id='target'></span>
<a></a>

jquery

assume 'a' = $(this),
then I do $(this).closest('#target');

しかし、それは #target を選択していないようです..何が問題なのですか?

4

3 に答える 3

2

Closest('#target')タグは親ではなくa兄弟であるため、ここでは機能しません。これらの両方の親要素を見つけるためにspan#target使用してから、検索を実行してスパンを取得するか、単に兄弟スパンを取得するために使用します。Closesttarget.prevtarget

$(this).closest("div").find("#target");

また

$(this).prev("#target");
于 2013-10-26T05:52:52.223 に答える
1

id があるので、id はドキュメント内で一意であるため、id セレクターとして使用できます。この場合、リレーショナル ルックアップを使用する必要はありません。

var target = $('#target')

anchor要素の後に要素が続く上記のようなパターンがある場合は、 のspan代わりに class 属性を使用しますid。このような場合、spanは要素の前の兄弟であるため、 .prev()anchorを使用する必要があります。

<span class='target'></span>
<a></a>

var target = $(this).prev('.target');// $(this).prev() is sufficient 

.closest()は、兄弟要素ではなく、祖先要素を探します。

于 2013-10-26T05:50:09.957 に答える
0

Closes は兄弟をチェックせず、要素とその親をチェックしますjQuery.closest

セット内の各要素について、要素自体をテストし、DOM ツリー内のその祖先をたどることによって、セレクターに一致する最初の要素を取得します。

あなたの場合<a>、 と<span>は兄弟であり、親子でclosestはありませspana

于 2013-10-26T05:54:37.537 に答える