为什么document.querySelector从未使用过

时间:2017-08-06 02:20:45

标签: javascript

我只是想知道为什么没有人使用document.querySelector("#myDiv");代替document.getElementById("myDiv");

是否存在浏览器兼容性问题,或者是什么原因?

感谢

1 个答案:

答案 0 :(得分:0)

前提

为了验证你的前提,我从1月份开始检查StackOverflow答案得分为4分或更高......你说得对。

  • 42个答案仅使用document.querySelector
  • 167个答案仅使用document.getElementById

您可以在Stack Exchange Data Explorer处自己尝试查询。

querySelector

select count(*)
from Posts
where Body like '%document.querySelector(%'
and Body not like '%document.getElementById(%'
and PostTypeId = 2 -- Answer
and Score > 4
and CreationDate > '2017-01-01'
and CreationDate < '2017-08-01'

的getElementById

select count(*)
from Posts
where Body like '%document.getElementById(%'
and Body not like '%document.querySelector(%'
and PostTypeId = 2 -- Answer
and Score > 4
and CreationDate > '2017-01-01'
and CreationDate < '2017-08-01'

答案

现在回答你的问题,很难说为什么人们会赞成语法。 Performance可能是一个问题(正如2pha指出的那样),因为querySelector()必须解析一个字符串以确定哪个元素匹配,getElementById不需要解析输入字符串并且可以立即查询DOM。

但是,多次查询DOM并不是一个好习惯,所以这通常会发生一次,你会保留对该DOM元素的引用。

可能归结为以下几点:

  • w3schools适合初学者,所以当你第一次学习javascript时,不需要介绍css选择器
  • stackoverflow有人在querySelector存在之前使用了javascript,唯一的选项是getElementById所以其中一些只是habbit