3

I know that live NodeList returned by getElementsByTagName preserves the document order of elements.

Is it true for getElementsdByClassName, getElementsByName and querySelectorAll methods?

does these method also preserve the document order?

Any DOM/HTML5 W3C standard link would be appreciated.

4

2 回答 2

2

是的。所有这些都按文档顺序/树顺序。

  • getElementsByName( DOM Level-2-HTML ) 返回一个NodeList
  • querySelectorAll选择器 API)返回NodeList“按文档顺序”
  • getElementsByTagName( DOM ) 返回一个HTMLCollection
  • getElementsByClassName( DOM ) 返回一个HTMLCollection

HTMLCollectionsNodeLists都被指定为

元素按树顺序排序

当通过 indizes 访问它们时。NodeList 是否处于活动状态并不重要(当然,与静态 NodeList 中保存的文档顺序相比,实际文档顺序可能会发生变化)。

于 2013-04-11T14:29:09.573 回答
2

不,它们的工作方式不同。只有该getElementsByTagName方法返回一个实时集合。

getElementsByTagName方法返回一个NodeList对象,该对象是元素的实时集合。

querySelectorAll方法返回一个NodeList不是实时集合的对象。

getElemendsByClassNameandgetElementsByName方法返回一个不是实时集合的HTMLCollection对象。

(请注意,不同的文档getElemenetsByName指定 aHTMLCollection或 a NodeList。)

于 2013-04-11T13:38:30.147 回答