2017-08-06 79 views
-1

我只是想知道爲什麼沒有人使用document.querySelector("#myDiv");而不是document.getElementById("myDiv");爲什麼document.querySelector從來沒有使用過

是否有瀏覽器兼容性問題,或者是什麼原因?

感謝

+1

我使用它,所以它顯然不是沒有人。 – Andy

+1

......相信「沒有人使用」的基礎是什麼? –

+1

我一直都在使用它,但是,在比較的情況下,我也會使用'getElementById',因爲'querySelector'必須找出你的選擇器是什麼意思,它是一個類,一個id,它是否包含僞選擇器?大多數人使用它時,他們需要一個複雜的選擇器運行,但只想第一個結果(而不是'querySelectorAll') – KevBot

回答

0

前提

要驗證的前提下,我檢查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的是初學者所以世界上沒有必要引進CSS選擇器,當你第一次學習JavaScript
  • 計算器已誰使用的JavaScript之前就存在querySelector和人民唯一的選擇是getElementById所以它的一些只是哈比特
+0

是的,謝謝,這使得完美的感覺,謝謝你的時間:) –

相關問題