通过id查找和使用JavaScript / jquery按类查找之间是否存在效率差异?

时间:2011-09-08 19:11:09

标签: javascript jquery html

通过id查找和使用JavaScript / jquery按类查找之间是否存在效率差异?

一个比另一个好吗?如果是这样的话,因为ID或类的索引是在DOM的某个地方制作的?

它最终无关紧要吗?

3 个答案:

答案 0 :(得分:3)

无论身在何处(getElementById()$('#id'),甚至常规CSS),按ID查找总是更快。

由于每个页面的ID都是唯一的,因此它们的查找速度要快得多。

此外,使用$('#id')时,jQuery会将其映射回内置的getElementById(),这是查询DOM的最快方式。

答案 1 :(得分:2)

嗯,从逻辑上讲,一个ID会更有效率,因为它(应该)只有一个,所以一旦找到它,它就会停止搜索。但是我不熟悉jQuery源代码,我不知道它是如何工作的,这是从逻辑角度来看。

答案 2 :(得分:1)

对于大多数浏览器,按ID搜索和按类名搜索之间的速度差异取决于具有给定类的元素数量。最多只有一个这样的元素,搜索速度应该是相同的。在最坏的情况下,有一个特定类别的bazillion元素。但是,通常情况下,您不必担心搜索包含相同类的10-20个元素的速度。

一个关键的警告:MSIE< = 8没有本地getElementsByClassName,因此jQuery必须回退到完整的DOM树搜索,除非例如还提供了所需元素的元素名称。即使这样。如果您的文档很大并且非常$('div.myclass'),那么div可能会有很大的帮助。基准测试确实是唯一能找到答案的方法。