如何用 text 节点与 comment 节点区分页面中的注释与文本
如何用 text 节点与 comment 节点区分页面中的注释与文本

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
在 DOM 解析与操作的日常工作中,你是不是也遇到过类似的困扰:一段看似普通的文本内容,怎么才能准确判断它究竟是真正的文本节点,还是一个被浏览器“隐藏”起来的注释呢?这事儿听起来有点绕,但其实只要抓住几个核心点,区分它们就变得非常简单了。
看 nodeType 属性是最直接的方式
最可靠、最直接的办法,莫过于查看节点的 nodeType 属性。DOM 中的每种节点都有其专属的“身份证号码”——这就是 nodeType 的值。
- 文本节点(Text Node)的
nodeType恒等于3。 - 注释节点(Comment Node)的
nodeType则恒等于8。
看一个简单的例子就明白了:
const el = document.getElementById('container');
el.childNodes.forEach(node => {
if (node.nodeType === 3) {
console.log('这是文本节点:', node.textContent.trim());
} else if (node.nodeType === 8) {
console.log('这是注释节点:', node.textContent);
}
});
通过这个简单的判断,你就能在遍历子节点时,将两者清晰地区分开来,根本无需去“猜”内容。
用 nodeValue 或 textContent 判断内容但不替代 nodeType
当然,我们也能通过 nodeValue 或 textContent 来读取节点内容。但这里有个关键点需要谨记:这两个属性能告诉你“内容是什么”,但不能告诉你“它是什么”,绝不能替代 nodeType 的类型判断。
- 对于 text 节点,
nodeValue和textContent都返回纯粹的文本内容,包括其中的空格和换行符。 - 对于 comment 节点,
nodeValue会返回注释符号内部的原始字符串。textContent行为类似,不过它不会去解析内容中可能存在的 HTML 标签。
需要特别警惕的是,绝不能仅仅因为内容里包含了“--”或“”这段文本。
遍历子节点时避开注释节点(常见需求)
在实际开发中,一个常见场景是只想提取和处理页面里的有效文本,这时就需要把注释节点过滤掉。方法很简单:
Array.from(el.childNodes)
.filter(node => node.nodeType === 3 && node.textContent.trim())
.forEach(textNode => {
console.log('有效文本:', textNode.textContent.trim());
});
或者,如果你想要一个更通用的遍历逻辑,通常可以记住这几个关键的类型:
nodeType === 1:这是元素节点,比如 div、span 等。nodeType === 3:这是我们需要关注的文本节点。node.nodeType === 8:这就是注释节点,在大多数文本处理场景下可以直接跳过。
动态创建时主动指定节点类型
当我们从零开始用 Ja vaScript 动态创建节点时,节点类型从一开始就由创建方法决定了:
- 调用
document.createTextNode("hello"),生成的就是一个标准的 text 节点。 - 调用
document.createComment("说明信息"),创建的则是一个 comment 节点。
这些节点被插入到 DOM 树后,其类型属性会保持不变,依旧可以通过上面提到的 nodeType 判断法来准确识别。这样一来,无论是静态解析还是动态生成的内容,区分文本与注释都有了清晰、统一的标准可循。
相关攻略
预测市场的真相:是群体智慧,还是少数人的游戏? 说起预测市场,很多人脑海里会立刻浮现出“群体智慧”这个词。成千上万的用户对事件反赌,最终价格似乎总能精准反映现实概率——这听起来像是民主化预测的完美典范。但最近一项来自伦敦商学院和耶鲁大学的研究,却给这个浪漫的想象泼了一盆冷水。 研究团队发现,像Pol
伊朗议员警告:若安全受威胁,波斯湾航道或陷动荡 伊朗议员法达侯赛因·马利基近日发出警告,称如果伊朗的沿海安全受到威胁,波斯湾和阿曼海将出现不安全局势。这无疑给该地区的航运前景蒙上了一层阴影。与此同时,市场对于霍尔木兹海峡交通将于5月15日恢复正常的预期,也出现了微妙变化,目前概率为14 5%。是的,
Oracle RAC归档日志全面检查指南:节点级验证与线程归属深度解析 在Oracle RAC集群环境中,归档日志的配置与状态检查是一项需要精细化操作的关键任务。它要求数据库管理员必须对每个节点逐一进行归档模式、路径设置、日志生成状态的审查,并深刻理解日志线程归属的核心逻辑。检查的核心流程是:首先通
解决RMAN恢复时日志文件名冲突引发的 ORA-01157 错误 在使用RMAN执行数据库恢复操作时,若目标磁盘上已存在同名的在线重做日志文件(例如 redo01 log),恢复进程常会中断并抛出 ORA-01157: cannot identify lock data file 错误。值得注意的是
SQL如何查询用户连续达标的天数:窗口函数状态机模型 说起查询“连续达标”天数,很多人的第一反应可能是用日期相减。但这里有个本质问题需要先想清楚:我们到底在识别什么? “连续达标”的本质是识别不间断的满足条件时间序列,需用LAG()判断状态延续性并用SUM() OVER构造段ID,而非依赖日期相减。
热门专题
热门推荐
我国刀具市场发展调研报告 在当今制造业持续升级的背景下,市场调研报告的重要性日益凸显。一份结构清晰、数据翔实的报告,能为决策提供关键参考。以下这份关于我国刀具市场的调研报告,旨在梳理现状、剖析问题,并为未来发展提供借鉴。 当前,国内刀具年销售额约为145亿元,其中硬质合金刀具占比不足25%。这一比例
国内首份空净市场调研报告 在公众健康意识日益增强的今天,市场报告的重要性不言而喻。一份结构清晰、数据翔实的报告,能为行业描绘出精准的航图。那么,一份优秀的市场调研报告究竟该如何呈现?近期发布的这份国内空气净化器行业蓝皮书,或许能提供一个范本。 市场增长的势头有多强劲?数据显示,国内空气净化器市场正驶
水利工程供水管理调研报告 在各类报告日益成为工作常态的今天,撰写一份扎实的调研报告,关键在于厘清现状、找准问题、提出思路。这份关于水利工程供水管理的报告,旨在系统梳理情况,为后续决策提供参考。 一、基本情况 横跨区域的**水库及八座枢纽拦河闸,构成了**运河流域防洪与兴利供水的骨干工程体系。自投入运
财产保全申请书范本 一份规范的财产保全申请书,是启动财产保全程序的关键文书。其核心在于清晰、准确地列明各方信息、诉求与依据。通常,申请书的结构是固定的,但具体内容需要根据案件事实来填充。下面,我们通过几个典型的范本来拆解其中的要点。 篇一:通用格式范本 首先来看一个通用模板。这个模板清晰地勾勒出了申
“防台抗台”活动由学院的积极分子组成,他们踊跃报名,利用暑期时间奉献自己的青春,为社会尽一份力量。 带队的学院分团委书记吕老师点出了活动的深层价值:这不仅是一次能力锻炼,更是学生认识社会、融入社会并最终回馈社会的关键一步。经过这番历练,团队友谊愈发坚固,协作精神显著增强,感恩之心也油然而生。 青春洋





