我总是保存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/

    10-12 12:49
    查看更多