为什么<a id="test"/>会脱离DOM链?

Aro*_*ost 0 html javascript html5 dom

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
    </head>
    <script type="text/javascript">
        function fire() {
            console.log(document.body.children.length);
            console.log(document.body.children[0].children.length);
        }
    </script>
    <body onload="fire()">
        <div>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer pharetra ipsum erat. Aenean convallis laoreet massa, et gravida purus faucibus ac. <a id="test"/>Vestibulum libero justo.</p>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

当您打开控制台,你会看到,<a>children<body>,<div><p>.WTF?

如果<a>用"正确的"结束标记关闭,问题就会消失,而且它的唯一子项就是<p>.

谁可以给我解释一下这个?

PS:在Chrome上测试稳定.

Mat*_*hew 8

我想这是因为a它不是一个有效的短标签.