jquery 循环对象
写在前面:
之前用了N年的 jquery ,虽然现在几乎不使用 jquery 了,但是最近才发现,jquery 也可以循环对象。
以前都是使用 jquery 的 each 去循环数组。
可能之前没仔细看过官网内容,之前也没读过 jquery 的源码,刚去翻看了 jquery 的源码,才知道 jquey 源码循环对象用的是 for in 循环。
特此记录一下。
一、js 的 for in 循环
回顾一下 js 的 for in 循环,它可以循环数组,也可以循环对象
var arr=[1,2,3,4,5];
var obj={a:1,b:2};
for(var key in arr){
console.log(arr[key])
}
// 打印结果为: 1 2 3 4 5
for(var key in obj){
console.log(key+":"+obj[key])
}
// 打印结果为:
// a:1
// b:2
二、jquery 的 each 循环
循环数组:
var arr=[1,2,3,4,5];
$(arr).each(function(i,dom){
console.log(i,dom)
})
$.each(arr,function(i,dom){
console.log(i,dom)
})
上面两个 each 的用法打印出来的结果是一样的,都是:
循环对象:
先来看看 $().each() 的使用:
var obj={a:1,b:2};
$(obj).each(function(i,dom){
console.log(i,dom)
})
打印结果为:
看来,$().each() 不能循环对象,只能循环数组。传入的对象也是被当做数组来处理了。
因为 $( ) 的语法本来返回的是一个类数组的对象。往里面传入对象有点荒谬。
再来看看 $.each() 的使用:
var obj={a:1,b:2};
$.each(obj,function(i,dom){
console.log(i,dom)
})
打印结果为:
可以看到,$.each() 是可以循环对象的。
总结:
1、$.each( )既可以循环数组,也可以循环对象。
2、 $( ).each( ) 只能循环数组,不能循环对象。