通过id查找和使用JavaScript / jquery按类查找之间是否存在效率差异?
一个比另一个好吗?如果是这样的话,因为ID或类的索引是在DOM的某个地方制作的?
它最终无关紧要吗?
答案 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
可能会有很大的帮助。基准测试确实是唯一能找到答案的方法。