我只是想知道为什么没有人使用document.querySelector("#myDiv");
代替document.getElementById("myDiv");
?
是否存在浏览器兼容性问题,或者是什么原因?
感谢
答案 0 :(得分:0)
为了验证你的前提,我从1月份开始检查StackOverflow答案得分为4分或更高......你说得对。
document.querySelector
document.getElementById
您可以在Stack Exchange Data Explorer处自己尝试查询。
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'
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元素的引用。
可能归结为以下几点:
querySelector
存在之前使用了javascript,唯一的选项是getElementById
所以其中一些只是habbit