getElementsByClassName/Id返回的数组中元素的顺序是否一致?
Is the order of elements in an array returned by getElementsByClassName/Id consistent?
我想知道在getElementsByclassName()
及其同类(例如getElementById()
)的数组中返回的元素顺序是否一致/有保证或是否依赖于引擎?我在javascript开发人员控制台中执行的基本测试似乎表明它是自上而下
看起来基于W3站点,假设一致的顺序是安全的
"让类成为classNames上运行有序集解析器的结果。"
http://www.w3.org/TR/2015/WD-dom-20150428/concept-getelementsbyclassnamehttp://www.w3.org/TR/2015/WD-dom-20150428/concept-ordered-set-parser
编辑:以上只是@mccc指出的答案的一半。当搜索多个类时,参数内部的顺序无关紧要,但是返回的结果保证是有序的。这是因为返回的集合必须是HtmlCollections,而规范将HtmlCollections定义为树顺序。根据定义,这意味着元素将自顶向下返回。
http://www.w3.org/TR/2015/WD-dom-20150428/concept-tree-order
@mcc还指向了另一个有用的链接,以帮助说明这一点:
http://www.w3.org/TR/2015/WD-dom-20150428/概念系列
所以简而言之,getElementsByClassName()
返回的元素将按照自顶向下的顺序排列。
相关文章:
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 在学习JavaScript,Ajax,jQuery和JSON时是否与顺序相关
- 是否可以通过 AJAX *按顺序*上传文件
- 是否可以按顺序基于关联进行查询
- Node.JS中的模式顺序是否重要
- 是否可以在JqGrid中按字母顺序以外的其他方式对组进行排序
- 确定字符串中的所有字母是否按JavaScript字母顺序排列
- javascript 是否保证枚举同一对象两次将以相同的顺序遍历字段
- 除了JS,其他语言是否按加载顺序执行代码
- 是否可以按当前排序顺序获取跨多个页面的所有 jqGrid 行
- 如何检查数组是否包含不同顺序的字符串
- 对象属性的分配顺序是否与声明顺序相同
- Javascript中操作的执行顺序是否保证始终相同
- PHP 必需或包含的文件是否需要遵循顺序
- 如何测试字符串是否按顺序包含多个定义的单词
- JavaScript 是否对函数参数有明确的计算顺序?
- 是否仍然可以指定单层上特征的z顺序
- 承诺的解决顺序是否与Promise.sexel中提到的顺序相同
- javascript上下文中var的顺序是否重要
- 在JavaScript中计算相等或同一性时,操作数顺序是否有任何区别