あるクラス名を持った要素にだけ変更を加えたい場合、for()を使って対応することができます。
また、JavaScriptの場合、少し処理を加えるとforeach()でも同様の処理をすることができます!
jQueryの場合はeach()を使っても同様の処理をすることができます!
今回は備忘録としてJavaScriptとjQueryのfor文とforeach文、each文の書き方の違いをまとめました!
もくじ
for()で実行する場合
HTML
<div> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> </div>
JavaScript
window.onload = function() {
const ele = document.getElementsByClassName("odd");//class属性が「odd」の要素を取得
for(let i = 0; i < ele.length; i++){//class属性が「odd」の要素の数だけ繰り返し処理
const new_text = i + "番目:" + ele[i].textContent;
ele[i].innerHTML = new_text;
}
}
/*
* 実行結果
*
0番目:奇数テキスト
偶数テキスト
1番目:奇数テキスト
偶数テキスト
2番目:奇数テキスト
偶数テキスト
*/
jQuery
$(function(){
const ele = $(".odd");//class属性が「odd」の要素を取得
for(let i = 0; i < ele.length; i++){//class属性が「odd」の要素の数だけ繰り返し処理
const new_text = i + "番目:" + ele.eq(i).text();
ele.eq(i).text(new_text);
}
});
/*
* 実行結果
*
0番目:奇数テキスト
偶数テキスト
1番目:奇数テキスト
偶数テキスト
2番目:奇数テキスト
偶数テキスト
*/
forEach()で実行する場合 ※jQuery不可
forEach文で繰り返し処理をする場合、document.getElementsByClassName("クラス名")で取得した要素をArray.from()を使って配列にすることでforEach文でも繰り返し処理を実行することができます!
※ただし、jQueryではforEach()は使えないので、代わりにeach()を使います
HTML
<div> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> <p class="odd">奇数テキスト</p> <p class="even">偶数テキスト</p> </div>
JavaScript
window.onload = function() {
var ele = document.getElementsByClassName("even");
var ele_arr = Array.from(ele);//←配列にする
ele_arr.forEach( (element, index) => {
const new_text = index + "番目:" + element.textContent;
element.innerHTML = new_text ;
});
}
/*
* 実行結果
*
奇数テキスト
0番目:偶数テキスト
奇数テキスト
1番目:偶数テキスト
奇数テキスト
2番目:偶数テキスト
*/
each()で実行する場合 ※jQueryのみ可
for文やforeach文と同様に繰り返し処理をすることができます!
※ただし、JavaScriptではeach()は使えないので、代わりにforEach()を使います
jQuery
$(function(){
var ele = $(".even");
ele.each( (index, element) => {
const new_text = index + "番目:" + $(element).text();
$(element).text(new_text);
});
});
/*
* 実行結果
*
奇数テキスト
0番目:偶数テキスト
奇数テキスト
1番目:偶数テキスト
奇数テキスト
2番目:偶数テキスト
*/





