javascript - DOM顺序是否始终一致? (JavaScript)

标签 javascript

我想使用 appendChild() 创建以下以网格格式访问的内容:

<div class="x">
    <div class="y">0-0</div>
    <div class="y">0-1</div>
    <div class="y">0-2</div>
</div>
<div class="x">
    <div class="y">1-0</div>
    <div class="y">1-1</div>
    <div class="y">1-2</div>
</div>
<div class="x">
    <div class="y">2-0</div>
    <div class="y">2-1</div>
    <div class="y">2-2</div>
</div>

然后,我将使用如下方式访问包含“2-1”的 div:

var x2y1 = document.getElementsByClassName('x')[2].getElementsByClassName('y')[1];

回到 IE6,你们知道这里有什么问题吗?

最佳答案

getElementsByClassName 是一个相当新的功能,我认为是在 IE9 中引入的。 (就我个人而言,我从未使用过它,因为 querySelector 也可以做到这一点 - 甚至更多 - 并且是在 IE8 中引入的!)

无论如何,顺序为所有这些函数定义的。 http://www.w3.org/TR/dom/#concept-getelementsbyclassname请注意,它说它搜索有序集。

另请注意,getElementsByClassName 会返回一个实时列表;对 DOM 的更改会立即在结果中看到(这可能是它与 querySelector(".classname") 之间的主要区别 - 后者返回一个固定数组)。因此,如果您修改元素,请注意您的循环条件和索引。很容易忘记然后只看到一些节点,因为索引是从你脚下改变的!

关于javascript - DOM顺序是否始终一致? (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431330/

相关文章:

javascript - 使用服务在 Controller 之间共享状态

javascript - 将下拉列表 Razor 值设置为输入

javascript - Vue v-for 性能差

javascript - 如何根据 jquery 中的第一个日期选择器更改日期选择器日期

javascript - 如何通过单击一次销毁命名的 jquery-styles?

javascript - React 组件未正确加载

javascript - 根据质量和弹跳系数计算球与球碰撞的速度和方向

javascript - typescript 和 sweetalert2 Uncaught ReferenceError : exports is not defined

javascript - Foundation Button Groups plain html 和 ng-repeat 不同的结果

javascript - 时区选项在 Intl.DateTimeFormat() 中究竟做了什么