javascript - html节点的 "text"子节点是什么?

标签 javascript html dom dom-node

我已经尝试搜索但没有找到答案:

所以我知道当一个页面被传递给浏览器或被浏览器下载时,会生成一个页面的树结构表示,称为 DOM。然后可以使用 Javascript 来操作这棵树的节点(表示元素的对象)。

现在如果我打开 Chrome 的开发者控制台并执行命令:

document.childNodes;

我得到了我所期望的,即两个节点,即 DOCTYPE 和 html 节点

[<!DOCTYPE html>, html]

如果我现在为 html 分配一个变量,然后像这样检查它的节点:

var htmlNode = document.childNodes[1];
htmlNode.childNodes;

奇怪的事情发生了:

我得到了预期的“head”节点,然后是一个我不知道它来自哪里的“text”节点,最后是预期的“body”节点。

[head, text, body]

我的问题是这个“文本”节点来自哪里?

enter image description here

最佳答案

尽管 HTML 表示 html元素通常只能包含 headbody , 任何这些元素的开始和结束标记之间当然允许元素间空格。

在 HTML DOM 中,元素间的空白总是分布在文本节点中。因此,大概是您在 head 之间看到的文本节点和 body元素节点是 </head> 之间的元素间空白结束标记和 <body>开始标记。

关于javascript - html节点的 "text"子节点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52102224/

相关文章:

javascript - 使用动态 DOM 通过 keyup 将 .val 添加到右侧输入

javascript - 如何在 MVC 中将 dropdownlist 的值传递给 onchange 事件?

javascript - jQuery 错误 IE JSON

javascript - 如何在收到新消息时在浏览器标题栏中提醒?

javascript - 如何按对象限制 Javascript 计数器变量的范围?

jQuery图片点击功能没有效果

javascript - 如何在长混合 html 内容中自动分页

javascript - 如何在没有 IFRAME 和 JQuery 的情况下使用 Javascript 在 div 中加载网页?

javascript - 滚动 Pane 高度问题

javascript - 如何重置 jquery 应用的内联 css?