jQueryで複数の要素に対して同じ処理をしたいです
jQueryのeach関数の使い方を説明します
WEBページに動きをつけるにはjQueryが便利
WEBページの要素の内容を動的に変えたり、動きを付けたりするにはJavaScriptが必要になってきます。
WEBページでJavaScriptの処理を書くには、jQueryを利用するのが便利です。
jQueryに付いて
jQueryは最も多く利用されていると言われているJavaScriptのライブラリです。
jQueryを使用すると、少ない記述でWEBページの要素を扱うことができます。
jQueryで使うeach関数に付いて
jQueryで、指定したオブジェクトや配列の各要素に対して、ループ処理を行うにはeach関数を使用します。
each関数には以下の2種類があります。
- jQueryオブジェクトのeach関数
- jQueryのeach関数
jQueryオブジェクトのeach関数
jQueryオブジェクトのeach関数について
jQueryオブジェクトのeach
関数は、jQueryオブジェクトが指す各要素に対するループ処理が行えます。
jQueryの関数は、jQueryオブジェクトでないと使用できないので、以下のようにWEBページの要素をjQueryオブジェクトに変換する必要があります。
WEBページからDOMエレメントを取得する
WEBページは、JavaScriptやCSSからHTMLの要素を扱えるように、DOM(Document Object Model)という仕組みでデータを持っています。
DOMを利用して取得した要素を、DOMエレメントといいます。
DOMについては、別の記事でより詳しく説明しています。
DOMエレメントをjQueryオブジェクトに変換する
jQueryで、DOMエレメントをjQueryオブジェクトに変換するには$(DOMエレメント)
と書きます。
// HTMLからpタグの要素のDOMエレメントを取得
const domElement = document.querySelector(“p”);
// DOMエレメントをjQueryオブジェクトに変換
const jqueryObject = $(domElement);
// この書き方でも同じ
const jqueryObject2 = jQuery(domElement);
jQueryオブジェクトのeach関数の構文
jQueryオブジェクトのeach関数の構文は以下になります。
jQueryオブジェクト.each(function(index, element) {
// 各要素に対して行う処理をここに書く
});
function()
内にjQueryオブジェクトの各要素に対して行いたい処理を書きます。
引数index
について
引数index
には0始まりのループ回数の数値が入っています。
引数element
について
引数element
には、その時点でのループ対象の要素が入っています。
jQueryのeach関数
jQueryのeach関数について
jQueryのeach
関数は、引数の配列やハッシュの各要素をループして処理を行うことができます。
jQueryのeach関数の構文
jQueryオブジェクトのeach関数の構文は以下になります。
$.each(array, function(indexInArray, value) {
// arrayの各要素に対して行う処理をここに書く
});
// 以下でも同じです(引数は不要なら省略可)
jQuery.each(array, function(){
// arrayの各要素に対して行う処理をここに書く
});
function()
内に最初の引数array
の各要素に対して行いたい処理を書きます。
引数indexInArray
について
引数indexInArray
には引数array
の添え字の数値が入っています。
引数value
について
引数value
には、ループする引数array
の要素が順番に入ります。
each関数のループの制御
each関数のループの制御に付いて
jQueryのeach関数は、JavaScriptのforEach
文と違い、ループを途中で抜けることができます。
each関数のループ処理内で以下の文を書くとループ処理を制御できます。
- ループを途中を中止して抜けるには
return false;
- 次の要素のループに進むには
return false;
each関数のループを中止して外に出る
each関数のループ処理をすぐに抜けて外に出るにはfunction()
内でreturn false;
と書きます。
each関数で次の要素のループに進む
each関数で現在の要素のループ処理は終えて、次の要素のループ処理に移るにはfunction()
内でreturn true;
と書きます。