2022年04月24日

jquery:each(func)

このメソッドの説明

jQueryの each(func) は、セレクタ要素が複数存在する場合に、それらを1個ずつ呼び出して処理します。

 


メソッド

セレクタ.each(function(index, element) {セレクトした要素に対する処理})

 


パラメータ

index(整数)(省略可)

インデックス変数名

 

element(要素)(省略可)

要素の変数名

 メモ

index及びelement名には自由な名前が付けられます 例)function(n,e)

indexだけを指定した場合 例)function(n)

この場合、要素はthisで取得します。

③パラメータ指定を省略した場合 例)function()

この場合、要素はthisで取得します。

 


返り値

ありません

 


利用例

1.基本系の解説

[HTMLのサンプル]

このメソッドは下記の様に[test]クラスが複数存在する時に利用します。

<div class='test'>項目1</div>
<div class='test'>項目2</div> 
<div class='test'>項目3</div>

上記を実行すると下記が表示されます。

[jqueryサンプル]

上記のHTMLを下記のjQueryで処理します。

$(function(){ 
  var get_item = [];             // 配列の設定
  $('.test').each(function() { 
     get_item.push($(this).text());  // 発見したテキスト値を配列に追加
  }); 
  console.log(get_item);          // 配列を出力
  console.log(get_item.join()); // 上記をテキストに変換して出力
});

■コンソールに下記が表示されます。

・配列

(3) ["項目1", "項目2", "項目3"]

・テキスト値

項目1,項目2,項目3

 

2.マルチセレクトの事例

下記のマルチセレクトを操作して下さい。選択したテキスト値が表示されます。

PCの場合の複数値の選択は[Ctrlキー]を挿入してクリックします。


上記のプログラムは下記から構成されています。

<HTML>

<select name='multi_name' class='multi_class' multiple > 
	<option value='1'>項目1  </option> 
	<option value='2'>項目2</option> 
	<option value='3'>項目3</option> 
	<option value='4'>項目4</option> 
</select>
<div style='display:flex;'>
	<button class='multi_check' style='margin-top:10px;'>選択確認</button>
	<button class='multi_initial' style='margin-top:10px;margin-left:10px;'>初期値</button>
</div>
<div class='multi_message' style='color:red;'></div>

<jQuery>

上記のHTMLを下記のjQueryで処理します。

$(function(){
	$('.multi_check').click(function(){     // 選択確認ボタンが挿入されてた時の処理
        var get_item = [];
        $('.multi_class option:selected').each(function(){
           get_item.push($(this).text()); // セレクトされた要素のテキストを配列に追加
        })
        var select_data = get_item.join(); // 配列をテキストに変換する
        $('.multi_message').text('選択値=' + select_data); // 画面に表示する
	});
	$('.multi_initial').click(function(){   // 初期化ボタンが挿入されてた時の処理
		$('.multi_class').val('');             // 選択値のリセット
		$('.multi_message').text('');      // メッセージエリアのクリア
	});
});

■2~9行目:選択確認の処理

3行目:選択値を取り出す配列を定義しています。

4~6行目:選択値を取得して上記の配列に入れています。

7~8行目:配列をテキスト化して画面に表示しています。

■10~13行目:リセットの処理

11行目:選択値をリセットしています。

12行目:メッセージエリアをリセットしています。

 


参考情報

each(func) と同じような動きをする map(func) というメソッドがあります。

下記にその違いとポイントを解説します。

 

each(func)の場合

var get_item = [];
$('.multi_class option:selected').each(function(){
   get_item.push($(this).text()); // セレクトされた要素のテキストを配列に追加
})
 var select_data = get_item.join(); // 配列をテキストに変換する
 $('.multi_message').text('選択値=' + select_data); // 画面に表示する

each(func)は単純にループを回すだけです。

よって複数の選択値を取り出すためには配列を定義し、そこにJavaScriptの push() で追加します。

■尚、取り出した選択値の配列をテキスト化する為にはJavaScriptの join() を利用します。

 

map(func)の場合

var select_item = $('.multi_class option:selected').map(function(){
   return($(this).text());  // セレクトされた要素のテキストを戻す
})
var select_data = select_item.get().join(); // jQueryオブジェクトから選択値を取り出してテキストに変換する
$('.multi_message').text('選択値=' + select_data); // 画面に表示する

map(func)はループを回した結果を jQueryオブジェクト に登録します。

jQueryオブジェクト配列 にするには get()メソッド を利用します。

■尚、取り出した選択値の配列をテキスト化する為にはJavaScriptの join() を利用します。

 

関数一覧
  • 1.JavaScript/jQueryとは
  • 2.[JS] 変数規則と文字連結
  • 3.[JS] if文
  • 4.[JS] 配列操作
  • 5.[JS] 文字列操作
  • 6.[JS] 画面情報&操作
  • 7.[JS] Timer処理
  • console.log()
  • for
  • for in
  • for of
  • indexOf()
  • join()
  • length
  • map()
  • match()
  • Object.keys()
  • Object.values()
  • parseInt()
  • pop()
  • push()
  • replace()
  • shift()
  • slice()
  • split()
  • toString()
  • unshift()
  • 1.jQueryの導入と記述の基本
  • 2.jQueryの機能追加
  • 3.jQuery文法
  • 4.階層構造の要素セレクトと操作
  • 5.要素サイズ取得メソッド
  • animate()
  • append()
  • attr()
  • change(func)
  • click()
  • click(func)
  • css()
  • each(func)
  • effect()
  • empty()
  • fadeTo()
  • get()
  • hover(f1,f2)
  • html()
  • map(func)
  • mousedown(func)
  • prop()
  • resize(func)
  • show()、hide()
  • slideToggle()
  • submit()
  • submit(func)
  • text()
  • toggle()
  • toggleClass()
  • val()