通常,如果HTML标记之间存在文本,则它将成为文本节点。然而,这并非总是如此。考虑以下示例:
<p>
<a href="hello.html">hello</a> <a href="world.html">world</a>
</p>
此处,<p>
和第一个<a ...>
之间的换行符和2个空格在DOM中不会显示为文本节点,至少在Chrome中不会显示。 hello
和world
当然是文本节点。似乎只有空格的序列不会显示为文本节点,但并非总是如此:在此示例中,两个链接之间的间隔是一个文本节点。
Chrome如何确定将成为文本节点的内容?
答案 0 :(得分:0)
在Chrome中尝试此操作,您会看到firstChild
中的p
是Text
:
let p = document.querySelector('p')
console.log(p.firstChild.constructor.name)
<p>
<a href="hello.html">hello</a> <a href="world.html">world</a>
</p>
似乎您甚至无法在Chrome中尝试抛出"Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag."
SO需要更新其代码段实现,因为到目前为止显然已被破坏。
您可以在Chrome中查看它:https://codepen.io/anon/pen/qQPdbz?editors=1111