jQueryでHTMLの特定要素をループ時に逆順で処理する方法
jQueryでリスト(li)タグ等の特定要素をeach()でループ処理する場合、当然ながら上から下の順に処理される。これを逆順として下から上の順に処理したい。以下に対応方法をメモ。
対応方法
ソースコード
<ul id="list"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script> //1->5の順に出力 $(`#list li`).each(function(index, value){ console.log($(this).html()); }); //5->1の順に出力 $($(`#list li`).get().reverse()).each(function(index, value){ console.log($(this).html()); }); </script>
解説等
get()で一旦配列化し、その配列をreverse()で逆順に並び替えたものをeach()でループ処理するという内容になる。
リファレンス
get()
reverse()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
関連記事
-
-
jQueryでページ表示時にラジオボタンやチェックボックスにcheckedがついている場合にイベントを実行する方法
ラジオボタンやチェックボックスをチェックした際に、jQuery側で何らかのイベン ...
-
-
jQueryで新しく追加した要素に対してイベントがきかない場合の対応
jQueryで新たに追加した要素に対して、 clickイベントを使いたかったけど ...
-
-
Lightboxで画像拡大時にダウンロードリンクを設置する方法
Lightboxで画像拡大時にダウンロードリンクを設置したいと要望を受けた。もち ...
-
-
エリア→都道府県→路線→駅名を連携する絞り込みセレクトメニューの設置方法
エリア→都道府県→路線→駅名のドリルダウン検索をプルダウン形式で設置したい。以前 ...
-
-
YouTubeの埋め込み動画をjQuery&CSSでフローティングビデオ対応させる方法
以前にvideoタグで表示させた動画をjQuery&CSSでフローティン ...