$.each(Array, function(i, value) {
this; //this指向当前元素
i; //i表示Array当前下标
value; //value表示Array当前元素
});
each处理一维数组
var arr1 = [ "aaa", "bbb", "ccc" ];
$.each(arr1, function(i,val){
alert(i);
alert(val);
}); alert(i)将输出 0,1,2
alert(val)将输出 aaa,bbb,ccc
each处理二维数组
var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
alert(i);
alert(item);
}); arr2为一个二维数组,item相当于取这二维数组中的每一个数组。
item[0]相对于取每一个一维数组里的第一个值
alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素
alert(item)将输出为 ['a', 'aa', 'aaa'],['b', 'bb', 'bbb'],['c', 'cc', 'ccc']
处理二维数组
var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
$.each(item,function(j,val){
alert(j);
alert(val);
});
}); alert(j)将输出为0,1,2,0,1,2,0,1,2 alert(val)将输出为a,aa,aaa,b,bb,bbb,c,cc,ccc
each处理json数据
var obj = { one:1, two:2, three:3};
each(obj, function(key, val) {
alert(key);
alert(val);
}); 这里alert(key)将输出one two three
alert(val)将输出one,1,two,2,three,3
这边为何key不是数字而是属性呢,因为json格式内是一组无序的属性-值,既然无序,又何来数字呢。
而这个val等同于obj[key]
处理json数组
var comments=[ {name:'xiaoming',msg:'我是好孩子'}, {name:'xiaohong',msg:'我喜欢过唱歌'} ]; $.each(comments,function(i,val){ alert(i); alert(val) alert(val.name); }) 输出结果为:0,[object,objec],xiaoming,1, [object,objec],xiaohong
ecah处理dom元素
$.each($("input:hidden"), function(i,val){ alert(val); alert(i); alert(val.name); alert(val.value); }); 那么,alert(val)将输出[object HTMLInputElement],因为它是一个表单元素。 alert(i)将输出为0,1,2,3 alert(val.name);将输出aaa,bbb,ccc,ddd,如果使用this.name将输出同样的结果 alert(val.value); 将输出111,222,333,444,如果使用this.value将输出同样的结果
$(selector).each(function(index,element))参数描述
function(index,element) 必需。为每个匹配元素规定运行的函数。
•index - 选择器的 index 位置
•element - 当前的元素(也可使用 "this" 选择器
<img/><img/>jQuery 代码: $("img").each(function(i){
this.src = "test" + i + ".jpg";
}); 结果:[ <img src="test0.jpg" />, <img src="test1.jpg" /> ]
$("button").click(function(){
$("li").each(function(){
alert($(this).text())
});
});
怎么跳出each
返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。
返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。