1

假设我在页面上有一个容器元素/div。它之外还有其他元素,包括页面布局/导航,其中有相当数量的内容。

在我的 javascript 中,我需要在该容器中查找/操作一些元素。如果所有这些元素都设置了 id 属性,速度明智,是更好地使用document.getElementById()(考虑到一旦找到,元素将需要转换为 jQuery 对象进行操作)来查找它们,或者像这样使用 jQuery 选择它们: $("#id"),或者先选择容器,将其存储在一个变量中,然后使用 jQuery 选择要操作的元素,如下所示container.find("#id")

哪种方法更快?像这样的搜索速度取决于什么?

4

1 回答 1

1

与内部使用jQuery()的 id 选择器document.getElementById一样,直接使用 native 方法显然更快。当然开销是可以忽略不计的(你永远不需要通过 id 选择数百个元素),它们做不同的事情——很可能你想要一个包含 DOM 节点的 jQuery 包装器对象。

container.find(idselector)不过,这是一个有趣的案例。由于 id 在整个文档中都是唯一的,因此您根本不需要这样的表达式。正因为如此,id 选择通常由O(1)浏览器内的查找表增强,即使对于完整文档也非常快。我不确定当您在容器中使用它时会发生什么,但它可能会退回到相当慢的 DOM 树遍历。

于 2013-01-10T23:21:57.433 回答