$('#element').method();
或
var element = $('#element');
element.method();
答案 0 :(得分:10)
不使用分析器,每个人都只是在猜测。我怀疑差异是如此之小,不值得担心。第二个上面的成本很小,比如必须预先形成查找以找到'var element'来调用方法,但是我会想到找到'#element'然后调用该方法要贵得多。
但是,如果你继续用元素做其他事情,第二个会更快
//Bad:
$('#element').foo();
$('#element').bar();
//Good:
var e = $('#element');
e.foo();
e.bar();
答案 1 :(得分:1)
如果你使用了一个循环,其中$('#element')的值被大量使用,那么在循环之前将其缓存为第二个版本将有很大帮助。
对于这个小片段,它没什么区别。
答案 2 :(得分:1)
通过id(#)查找非常快。我刚刚在一个带有2个div标签的小页面上测试了你的场景。这是我使用的代码 var x = $(“#div1”); var y = $(“#div2”); var z = $(“#div1”); 我的笔记本电脑每次查找大约需要0.3毫秒。 div1的第二次查找执行与第一次相同的内部jQuery方法 - 表示没有已经查找过的对象的缓存 当您使用其他选择器(如classname或更高级的jQuery选择器)时,性能会成为一个更大的问题。我对jQuery Selector Performance做了一些分析 - 检查一下 - 希望它有用。
答案 3 :(得分:0)
如果您只运行此代码,无人应该更快。第二个可能需要更多内存(因为创建了额外的变量)。
如果您想确定,为什么不使用小型自写基准测试自己?
答案 4 :(得分:0)
我认为$('#element').method();
不需要像
var element = $('#element');
...因为你将#element绑定到一个变量。
答案 5 :(得分:0)
Juste fore funne
\冷漠:
。$( '#元件')FOO()栏();