2016-06-28 84 views
0

我想知道是從什麼document.getElementsByClassName[對象HTMLDivElement]document.querySelector差異與[對象HTMLDivElement]

返回[對象的HTMLCollection]之間的差異是否[對象HTMLCollection]意味着我們正在執行「更廣泛」的DOM掃描,並會返回元素集合(如果存在)?這就是爲什麼它返回HTML集合,而不是元素?

但是,由於ReactDOM.render不接受返回的[對象HTMLCollection]作爲第二個參數,所以出現此問題。

乾杯。

+0

只要看看'getElementsByClassName方法()'函數的名稱:這是在談論元計劃** S **,複數。 – nnnnnn

+0

'getElementsByClassName' - notice * element's' *,這就是我們獲取Collection的原因。即使'document.querySelectorAll'也會返回一個Colleciton –

回答

3

HTMLCollection是一組元素。它可能包含0個或更多元素。

一種HTMLDivElement是單個元件


document.getElementsByClassName('x')更像document.querySelectorAll('.x')因爲每個將返回的基團。

document.querySelector只會返回一個元素

+2

請注意,一個'HTMLCollection'可以包含一個單獨的元素,或者不包含任何元素(我認爲會壓迫「group」的定義的可能性),但即使如此,它仍然必須被視爲列表而不是單個項目。 – nnnnnn

+0

這值得指出,是的。謝謝你的提示。 – naomik