DOM选择方法的文档顺序

时间:2013-04-11 13:26:14

标签: javascript

我知道getElementsByTagName返回的实时NodeList会保留元素的文档顺序。

getElementsdByClassNamegetElementsByNamequerySelectorAll方法是否属实?

这些方法是否也保留了文档顺序?

任何DOM / HTML5 W3C标准链接都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

不,他们并非都以同样的方式工作。只有getElementsByTagName方法才会返回实时收藏。

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

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

getElemendsByClassNamegetElementsByName方法会返回HTMLCollection object,而不是实时收藏。

(请注意,getElemenetsByName的不同文档指定了HTMLCollectionNodeList。)

答案 1 :(得分:2)

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

  • getElementsByNameDOM Level-2-HTML)返回NodeList
  • querySelectorAllSelectors API)按文档顺序返回NodeList
  • getElementsByTagNameDOM)返回HTMLCollection
  • getElementsByClassNameDOM)返回HTMLCollection

HTMLCollectionsNodeLists都指定为

  

元素按tree order排序。

当通过indizes访问它们时。 NodeList是否存在并不重要(当然,实际文档顺序可能与静态NodeList中保留的文档顺序相反)。