我想知道在getElementsByclassName()
及其类似的数组(例如getElementById()
)中返回的元素的顺序是否一致/有保证还是依赖于引擎?我在javascript开发人员控制台中执行的基本测试似乎表明它是从上到下排序的
答案 0 :(得分:2)
看起来基于W3网站,假设一致的订单
是安全的“让类成为在classNames上运行有序集解析器的结果。”
http://www.w3.org/TR/2015/WD-dom-20150428/#concept-getelementsbyclassname http://www.w3.org/TR/2015/WD-dom-20150428/#concept-ordered-set-parser
编辑:
上述答案仅为@mccc指出的答案的1/2左右。在搜索多个类时,命令在参数内部无关紧要,但返回的结果保证是有序的。这是因为重新归档的集合需要为HtmlCollections,并且规范将HtmlCollections定义为Tree Order。根据定义,这意味着元素将自上而下返回。
http://www.w3.org/TR/2015/WD-dom-20150428/#concept-tree-order
@mcc还指出了另一个有用的链接,以帮助推动这一点:
http://www.w3.org/TR/2015/WD-dom-20150428/#concept-collection
简而言之,getElementsByClassName()
返回的元素将按自上而下的顺序排列。