querySelector() 和 getElementBy[Id/ClassName/TagName] 有什么区别?[复制]

What's the difference between querySelector() and getElementBy[Id/ClassName/TagName]? [duplicate]

提问人:gorrangi 提问时间:9/27/2023 更新时间:9/27/2023 访问量:51

问:

我不明白使用 querySelector() 和 getElementById() 之间的区别。我知道querySelector通过使用任何选择器来检索元素,这使得它更加通用。

还有什么区别吗?什么时候应该使用 getElementById 而不是 querySelector?

javascript dom getelementbyid 查询选择器

评论

1赞 imvain2 9/27/2023
这真的是基于意见的。就像我宁愿根本不使用 ID。但其他人确实使用 ID。所以对我来说,效果最好。querySelector
0赞 icecub 9/27/2023
@imvain2 OP 实际上是在要求差异,表明他们不知道是否有事实理由根据情况选择一个而不是另一个。在这种情况下,性能将是选择其中之一的事实理由。当然,也有很多基于意见的原因,比如可读性。但老实说,我不认为这个问题是“最好的做法是什么?更有可能的是,OP正在寻找是否有事实原因。

答:

0赞 brandonscript 9/27/2023 #1

根据这篇文章

getElementById() 每秒可以运行大约 1500 万次操作,而在最新版本的 Chrome 中,querySelector() 每秒只能运行 700 万次操作。

因此,如果该性能量对您很重要,那么这样做是有意义的。否则,不,除了上述灵活性之外,没有其他区别。