我听说 querySelector和 querySelectorAll是选择 DOM 元素的新方法。在性能和浏览器支持方面,它们与旧的方法 getElementById和 getElementsByClassName相比如何?
querySelector
querySelectorAll
getElementById
getElementsByClassName
与使用 jQuery 的查询选择器相比,性能如何?
是否有关于使用哪种方法的最佳实践建议?
“更好”是主观的。
querySelector是较新的特性。
支持 getElementById比支持 querySelector更好。
querySelector比 getElementsByClassName受到更好的支持,但是 querySelector提供一个静态节点列表,而 getElementsByClassName提供一个活动节点列表。
querySelector允许您查找具有不能用 getElementById和 getElementsByClassName表示的规则的元素
您需要为任何给定的任务选择适当的工具。
(在上文中,将 querySelector改为 querySelector/querySelectorAll)。
getElementById和 getElementsByClassName的功能非常具体,而 querySelector和 querySelectorAll的功能更加详细。我的猜测是,他们实际上会有一个更差的表现。
此外,您还需要检查目标浏览器中每个函数的支持情况。它越新,缺乏支持或者函数存在“ bug”的可能性就越大。