我总是保存 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/jquery-find55
在我的浏览器(firefox 18)上:
- 测试 1(我保存查找结果)以每秒 7,074 次操作得分
- 测试 2(我不保存查找结果)以每秒 1,553 次操作得分
所以,是的,find
很“慢”,将它存储在变量中绝对是个好主意。
关于javascript - 在 JQuery 中查找节点的成本是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464057/