You need to enable JavaScript to run this app. 为何document.body.childNodes列表中会出现SCRIPT和#text节点?
优惠活动
大模型
产品
解决方案
定价
更多

为何document.body.childNodes列表中会出现SCRIPT和#text节点?

问题解答

首先明确基础规则:document.body.childNodes会返回<body>标签下所有直接子节点,覆盖元素节点、文本节点(标签之间的换行、空格等空白字符会被解析为文本节点,节点名为#text)、注释节点(节点名为#comment)等所有DOM节点类型。

你提到的两个节点来源如下:

  • SCRIPT节点:就是你编写的包含window.onload逻辑的<script>元素本身。你提供的示例代码里虽然把这段script放在了</head>之前,但从实际运行结果来看,你本地真实运行的代码是把这段script标签放在了</body>闭合标签的前面(属于前端常见的书写习惯,保证JS执行时DOM已经加载完成,大概率是你整理示例代码时写错了script的位置)。
  • #text节点:就是</script>结束标签和</body>闭合标签之间的换行、空格这类空白字符,浏览器会把连续的空白字符解析为一个文本节点,对应节点名就是#text。

额外补充:你输出里demo对应的P节点之后出现的#comment节点,说明你实际代码中在<p id="demo"></p>和script标签之间还有一段HTML注释,整理示例代码时你漏写了这部分内容。

内容的提问来源于stack exchange,提问作者Johnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 10:45:03