我知道getElementsByTagName
返回的实时NodeList会保留元素的文档顺序。
getElementsdByClassName
,getElementsByName
和querySelectorAll
方法是否属实?
这些方法是否也保留了文档顺序?
任何DOM / HTML5 W3C标准链接都将受到赞赏。
答案 0 :(得分:2)
不,他们并非都以同样的方式工作。只有getElementsByTagName
方法才会返回实时收藏。
getElementsByTagName
方法返回一个NodeList
对象,它是元素的实时集合。
querySelectorAll
方法返回一个NodeList
对象,该对象不是实时集合。
getElemendsByClassName
和getElementsByName
方法会返回HTMLCollection
object,而不是实时收藏。
(请注意,getElemenetsByName
的不同文档指定了HTMLCollection
或NodeList
。)
答案 1 :(得分:2)
是。所有这些都按文档顺序/树顺序排列。
getElementsByName
(DOM Level-2-HTML)返回NodeList
querySelectorAll
(Selectors API)按文档顺序返回NodeList
“getElementsByTagName
(DOM)返回HTMLCollection
getElementsByClassName
(DOM)返回HTMLCollection
元素按tree order排序。
当通过indizes访问它们时。 NodeList是否存在并不重要(当然,实际文档顺序可能与静态NodeList中保留的文档顺序相反)。