jQuery的$.each()方法和原生js的foreach方法功能类似,但用起来更加简单方便。
一:遍历一维数组
var arr = ["aa","bb","ccc"];
$.each(arr,function (index,val){
console.log(index);
console.log(val);
});
console.log(index) 将输出每个元素对应的索引值--0,1,2
console.log(val) 将输出每个元素--"aa","bb","cc"
二: 遍历二维数组
var arr2 = [[1,2,3],["aa","bb","cc"]];
$.each(arr2,function(index,val){
console.log(index);
console.log(val);
});
console.log(index)依然输出对应的每个元素的索引值--0,1
console.log(val)将输出对应的每个元素即第二维的数组--[1,2,3],["aa","bb","cc"]
三:遍历对象
var obj = {"name":"jerry","age":22,"country":"china"};
$.each(obj,function(index,val){
console.log(index);
console.log(val);
});
对于对象来说没有所谓的索引值只有key和value 所以:
console.log(index)将输出--name,age,country
console.log(val)将输出--jerry,22,china
四:遍历json
var json = [
{
"text" : "中国",
"value" : "9"
},
{
"text" : "新加坡",
"value" : "10"
},
{
"text" : "加拿大",
"value" : "13"
}
];
$.each(json,function(index,val){
console.log(index);
console.log(val);
console.log(val.text);
console.log(val.value);
//遍历val
$.each(val,function(key,values){
console.log(key);
console.log(values);
})
});
这是一个json串,也是前后台做数据交互用的最多的一种
第一层遍历时:
console.log(index) 输出索引值--0,1,2
console.log(val) 输出对应的三个对象--Object {text: "中国", value: "9"}, Object {text: "新加坡", value: "10"}, Object {text: "加拿大", value: "13"}
有时候我们需要用到对象的属性值(知道属性名)所以:
console.log(val.text) 输出--中国,新加坡,加拿大
console.log(val.value) 输出--9,10,13
但有些时候我们并不知道对象的属性名,因为val也是个对象 所以也可以使用$.each在此遍历 所以:
console.log(key) 输出-- text,value
console.log(values) 输出对应的三组数据--中国,9; 新加坡,10; 加拿大,13