通过变量名称或$?引用jQuery对象(主要是DOM对象)更快吗?

时间:2010-09-22 11:52:15

标签: jquery jquery-selectors

简单地说:

这是:

var x = $('#selector-id');
x.slideDown();

比:

更快
var x = $('#selector-id');
$(x).slideDown();

4 个答案:

答案 0 :(得分:2)

第二个例子没有意义,因为x已经是一个jQuery对象。

如果你这样做会更有意义:

var selector_string = '#selector-id';
$(selector_string).slideDown();

但这肯定比第一个选项慢,因为你每次使用它时都会访问DOM并创建一个新的jQuery对象。

答案 1 :(得分:2)

第二个版本克隆了jQuery对象......真的没有理由,所以是的,第一个版本更快更高效(更少浪费)。

答案 2 :(得分:0)

理论上它更快,因为它减少了一个函数调用。实际上你永远不会写第二个,因为x已经是一个jQuery对象了。

答案 3 :(得分:0)

记住dom acessing只会减慢你的javascript,你访问DOM的效率会越来越低。

下面是几个例子

var _elm= jQuery('.myElement');
_elm.DoThis();
_elm.DoThat();

2以上将比写下2更快

jQuery('.myElement').DoThis();
jQuery('.myElement').DoThat();

//您可以使用firebug的分析器来测试它。