9

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

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

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

4

2 回答 2

1

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

document.getElementsByClassName()
于 2010-01-26T15:16:29.850 回答
1

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

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

于 2010-01-26T17:59:15.357 回答