选择多个项目时的jQuery性能

时间:2010-01-25 23:11:44

标签: jquery jquery-selectors dom-traversal

这更像是一个好奇心问题。执行以下操作时:

$('.selector1, .selector2').doSomething()

jQuery是否完全遍历DOM两次以使每组对象与每个选择器匹配,或者是否在DOM的遍历中找到所有元素?

2 个答案:

答案 0 :(得分:1)

我认为它使用本机浏览器功能来查找,使用:

document.getElementsByClassName()

答案 1 :(得分:1)

这实际上取决于浏览器。在较新的浏览器中,它将使用document.querySelectorAll进行任何DOM查询(在内部调用document.getElementsByClassName用于类)。在不支持此功能的旧浏览器中,它必须自行解决,这显然会更慢。

通常,您应该首先通过id查找内容(或者至少缩小范围)。类和标签名称将是速度的下一个。基本上,本机支持的DOM操作是最好的。