jQuery:数组零vs函数得零:[0] vs get(0)

时间:2011-02-12 01:32:40

标签: jquery

当我可以使用$('#x>div').get(1)时,我是否应该使用$('#x>div')[1]?有区别吗?

2 个答案:

答案 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