jQueryにてclosestの使いどころとparent / parentsとの違いについて
あるソースコードを見ているとjQueryにてclosest()という使ったことのないメソッドが見受けられた。調べてみると要素から最も近い親要素を取得できるメソッドとのこと。親要素の取得というとparent()を思い浮かべるが挙動はかなり異なるみたい。以下に詳細をメモ。
closest
リファレンス
https://js.studio-kingdom.com/jquery/traversing/closest
ソースコード
<div class="parent_1" data-test="parent_1_2"> <div class="parent_1" data-test="parent_1"> <div class="parent_2" data-test="parent_2"> <div class="parent_3" data-test="parent_3"> <div class="target"> <div class="parent_1" data-test="parent_1_3"></div> </div> </div> </div> </div> </div> <div class="parent_1" data-test="parent_1_2"> <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script> $(function(){ console.log($(`.target`).closest(`.parent_1`).data(`test`)); console.log($(`.target`).parent().parent().parent().data(`test`)); console.log($(`.target`).parents(`.parent_1`).data(`test`)); }); </script>
いずれも
解説等
複数階層上がる場合はclosestが簡潔に書ける(parentだと複数回記述しないといけない)。
parentsはセレクタを指定するとclosestと同じように使えるが、指定しない場合は全ての親要素を取得するという違いがある。
関連記事
-
Lightboxで画像拡大時に文字タイトルとリンクをつける
lightboxで画像をクリックして拡大した際に、文字タイトルとその文字にリンク ...
-
jQueryのdatetimepickerでスクロール入力を無効化させる方法
日時ピッカーのjQuery datetimepickerにて、ピッカーを指定して ...
-
jQuery.uploadでリアルタイムプレビュー
やりたい事は、 ・<input type="file">で画像を選択 ...
-
モーダルウィンドウ表示時にウィンドウのスクロール位置をリセットする方法
モーダルウィンドウ内で「縦にスクロール→ウィンドウを閉じる→改めてモーダルウィン ...
-
JavaScript / jQueryにてページ表示時に指定したテキストボックスにフォーカスさせる方法
ページを開いた際に指定したテキストボックス(input type="text") ...