当我需要在函数范围内多次访问 jQuery 选择器的结果时,是否建议运行一次选择器并将其分配给局部变量?
请原谅我这里的陈词滥调的例子,但我认为它说明了问题。 那么,这段代码执行速度会更快吗:
var execute = function(){
var element = $('.myElement');
element.css('color','green');
element.attr('title','My Element');
element.click(function(){
console.log('clicked');
});
}
比这段代码:
var execute = function(){
$('.myElement').css('color','green');
$('.myElement').attr('title','My Element');
$('.myElement').click(function(){
console.log('clicked');
});
}
如果没有区别,谁能解释一下为什么? jQuery 在选择元素后是否会缓存元素,以便后续选择器不必再次搜索 dom?
最佳答案
重用选择器引用(您的第一种情况)肯定会更快。这是我做的一个测试作为证明:
http://jsperf.com/caching-jquery-selectors
后一种情况(重新定义选择器)据报道慢了约 35%。
关于jquery - jQuery 选择器与局部变量的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055165/