当我可以使用$('#x>div').get(1)
时,我是否应该使用$('#x>div')[1]
?有区别吗?
答案 0 :(得分:14)
不,没有区别。 jQuery将所有DOM节点保存在一个数组中。
$().get(1)
=== $()[1]
- jQuery源代码段 -
get: function( num ) {
return num == null ?
// Return a 'clean' array
this.toArray() :
// Return just the object
( num < 0 ? this[ this.length + num ] : this[ num ] );
},
如您所见,没有参数的.get()
将所有节点都返回为Array。这不能用括号来完成。
答案 1 :(得分:7)
不,性能为about the same,因为jQuery对象的创建支配了数组/函数访问时间:
Browser get Ops/sec array Ops/sec #tests
Chrome 9 20,555 22,671 2