QuerySelector 对 getElementById

我听说 querySelectorquerySelectorAll是选择 DOM 元素的新方法。在性能和浏览器支持方面,它们与旧的方法 getElementByIdgetElementsByClassName相比如何?

与使用 jQuery 的查询选择器相比,性能如何?

是否有关于使用哪种方法的最佳实践建议?

168153 次浏览

“更好”是主观的。

querySelector是较新的特性。

支持 getElementById比支持 querySelector更好。

querySelectorgetElementsByClassName受到更好的支持,但是 querySelector提供一个静态节点列表,而 getElementsByClassName提供一个活动节点列表。

querySelector允许您查找具有不能用 getElementByIdgetElementsByClassName表示的规则的元素

您需要为任何给定的任务选择适当的工具。

(在上文中,将 querySelector改为 querySelector/querySelectorAll)。

getElementByIdgetElementsByClassName的功能非常具体,而 querySelectorquerySelectorAll的功能更加详细。我的猜测是,他们实际上会有一个更差的表现。

此外,您还需要检查目标浏览器中每个函数的支持情况。它越新,缺乏支持或者函数存在“ bug”的可能性就越大。