(注:質問は尋ねられた翌日に編集され、質問を約parent
から約parents
[複数形に注意]に変更しました。どのような違いがありますか!)
(singular) vs.に関するあなたの最初の質問について: 1 レベルしか上がりません。現在の要素 (親だけでなく) から開始し、一致する要素が見つかるまで (または祖先がなくなるまで) 祖先を検索し続けます。parent
closest
parent
closest
(plural) vs.に関する更新された質問について: 2 つの違いがあります。parents
closest
現在の要素が考慮されるかどうか (それは でありclosest
、 ではありませんparents
)。
検索が最初の一致で停止するかどうか ( では停止しますが、 では停止しclosest
ませんparents
)。
元の質問から:
タグから、 $(this).closest('tr'); のいずれかを使用できます。または $(this).parent('tr');
いいえ、実際には。の親がセレクターと一致しない$(this).parent('tr');
ため、空の jQuery オブジェクトが返されます。span
更新された質問から:
タグから、 $(this).closest('tr'); のいずれかを使用できます。または $(this).parents('tr');
別のテーブル (テーブルを含むテーブルなど)内にない場合は、可能です。その場合は、同じ結果が得られます。ただし、テーブル内にテーブルがある場合は、複数の を取得します(すべての祖先要素)。tr
tr
parents
tr
tr
次の構造を検討してください。
<div class="wrapper">
<div class="inner">
<p>Testing <span>1 2 3</span></p>
</div>
</div>
をフックclick
するとspan
、関連する 3 つのメソッドから次のように返されます。
$(this).parent('div')
- 空の jQuery オブジェクトです。 の親は でspan
はありませんdiv
。
$(this).parents('div')
- 「内部」および「ラッパー」の div という2 つ の s を持つ jQuery オブジェクト(この順序で)。div
$(this).closest('div')
- 1 つ を含む jQuery オブジェクトdiv
、「内部」オブジェクト。
をフックclick
してセレクターとしてspan
使用した場合の結果は次のとおりです。span
$(this).parent('span')
- 空の jQuery オブジェクトです。 の親は でspan
はありませんspan
。
$(this).parents('span')
- 空の jQuery オブジェクト。span
祖先がありませんspan
。
$(this).closest('span')
span
-クリックされた を持つ jQuery オブジェクト。