我总是保存结果find()
为了避免多次子树遍历,如果我多次需要该值:
var $a_bar = $('div.foo').find('a.bar');
$a_bar.removeClass(...);
// ... code here
$a_bar.bazz();
代替
$('div.foo').find('a.bar').removeClass(...);
// ... code here
$('div.foo').find('a.bar').bazz();
我想知道这是否不是微优化...那么在以下位置查找节点的成本/复杂性是多少JQuery
?
您可以在 js perf 上测试它:http://jsperf.com/ http://jsperf.com/只需创建一个测试并运行它。
我在这里创建了一个小测试:http://jsperf.com/jquery-find55 http://jsperf.com/jquery-find55
在我的浏览器(firefox 18)上:
- 测试 1(我保存查找结果)每秒执行 7,074 次操作
- 测试 2(我不保存查找结果)每秒执行 1,553 次操作
所以,是的,find
是“慢”的,将其存储在变量中绝对是个好主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)