【发布时间】:2016-11-26 12:23:58
【问题描述】:
假设我有一个包含以下代码的 HTML 文件:
<foo>
<bar id="bar1"></bar>
<bar id="bar2"></bar>
<bar id="bar3"></bar>
</foo>
<script>
const foo = document.getElementsByTagName("foo")[0];
const bars = foo.children;
for (i = 0; i < bars.length; i++) {
console.log(bars[0]);
}
</script>
在浏览器(在我的例子中是 Chrome)中运行它会导致在控制台上打印三个 bar 节点,这是预期的行为。
但是,当我将 bar 节点的符号缩短如下
<foo>
<bar id="bar1" />
<bar id="bar2" />
<bar id="bar3" />
</foo>
打印的节点数变成只有一个。似乎bar2 是bar1 的孩子,bar3 是bar2 的孩子。
HTML DOM 处理空元素的方式不同吗?
【问题讨论】:
-
请使用有效的 HTML,不能保证当你给它垃圾时浏览器会如何表现。
标签: javascript html dom