我已经尝试搜索但没有找到答案:
所以我知道当一个页面被传递给浏览器或被浏览器下载时,会生成一个页面的树结构表示,称为 DOM。然后可以使用 Javascript 来操作这棵树的节点(表示元素的对象)。
现在如果我打开 Chrome 的开发者控制台并执行命令:
document.childNodes;
我得到了我所期望的,即两个节点,即 DOCTYPE 和 html 节点
[<!DOCTYPE html>, html]
如果我现在为 html 分配一个变量,然后像这样检查它的节点:
var htmlNode = document.childNodes[1];
htmlNode.childNodes;
奇怪的事情发生了:
我得到了预期的“head”节点,然后是一个我不知道它来自哪里的“text”节点,最后是预期的“body”节点。
[head, text, body]
我的问题是这个“文本”节点来自哪里?
最佳答案
尽管 HTML 表示 html
元素通常只能包含 head
和 body
, 任何这些元素的开始和结束标记之间当然允许元素间空格。
在 HTML DOM 中,元素间的空白总是分布在文本节点中。因此,大概是您在 head
之间看到的文本节点和 body
元素节点是 </head>
之间的元素间空白结束标记和 <body>
开始标记。
关于javascript - html节点的 "text"子节点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52102224/