20140228【JS】jQueryで要素に対する繰り返し処理を行う
お題
jQueryで要素に対する繰り返し処理を行う
プログラム概要
jQueryのget()、each()、map()メソッドによる繰り返し処理で要素を取得し
値を表示する
ソース
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>hoge</title>
<script src="jquery-1.11.0.js"></script>
<body>
<ul id="hp">
<li data-category="hg">hoge1</li>
<li data-category="hg">hoge2</li>
<li data-category="py">piyo1</li>
<li data-category="py">piyo2</li>
</ul>
<script>
$(function(){
var elements = $('li');
// lengthプロパティとget()メソッドによる繰り返し処理
console.log('-- lengthプロパティとget()メソッドによる繰り返し処理 --');
for(var i = 0; i < elements.length; i++){
console.log(i + ': ' + $(elements.get(i)).text());
}
// eachメソッドによる繰り返し処理
console.log('-- each()メソッドによる繰り返し処理 --')
$(elements).each(function(i, e){
console.log(i + ': ' + $(elements.get(i)).text());
// 3個目で処理を終了
if(i == 2){
return false;
}
});
// map()メソッドによる繰り返し処理
console.log('-- map()メソッドによる繰り返し処理 --')
var categories = $(elements).map(function(i, e){
return $(e).data('category');
});
console.log(categories.get().join(', '));
});
</script>
</body>
</html>
実行結果
-- lengthプロパティとget()メソッドによる繰り返し処理 -- 0: hoge1 1: hoge2 2: piyo1 3: piyo2 -- each()メソッドによる繰り返し処理 -- 0: hoge1 1: hoge2 2: piyo1 -- map()メソッドによる繰り返し処理 -- hg, hg, py, py