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と同じように使えるが、指定しない場合は全ての親要素を取得するという違いがある。
関連記事
-
-
jQueryで新しく追加した要素に対してイベントがきかない場合の対応
jQueryで新たに追加した要素に対して、 clickイベントを使いたかったけど ...
-
-
Dropzone.jsを使って画像をドラッグ&ドロップでアップロードする方法
画像を複数枚ドラッグ&ドロップでアップロードしたかった。だいぶ前にDro ...
-
-
jQueryの日付&時間のピッカー(bootstrap-datetimepicker)について
日付のピッカーはよく見るけど、時間のピッカーはあまり見ないので、普通のセレクトメ ...
-
-
jQueryでチェックボックスの全チェック&チェック解除する方法
フォームのチェックボックスで「全てにチェックを入れる」「全てのチェックを外す」と ...
-
-
jQuery Alert Dialogsで表示後に処理したい
最近携わったサイトの中でJavaScript内に「jAlert」とかいう記述があ ...