是否建议,当我需要在函数的范围内多次访问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%.