2016-06-28 82 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