如何用 nodeType 与 nodeName 准确判断当前节点的物理类型

张开发
2026/4/11 12:06:41 15 分钟阅读

分享文章

如何用 nodeType 与 nodeName 准确判断当前节点的物理类型
nodeType 是唯一可靠的节点物理类型标识应优先用于判断nodeName 仅作辅助参考不可单独依赖因其返回值随节点类型和上下文变化。直接用 nodeType 判断节点的物理类型最准确nodeName 仅作辅助参考不可单独依赖。nodeType 是唯一可靠的物理类型标识nodeType 是只读数值属性由 DOM 规范明确定义每个数字对应一种底层节点类型不会因浏览器或上下文变化1 → 元素节点Element如 div、p3 → 文本节点Text包含纯字符内容不含标签8 → 注释节点Comment如 !-- hello --9 → 文档节点Document即 document 对象本身11 → 文档片段DocumentFragment判断时应严格比对数值例如node.nodeType Node.ELEMENT_NODE推荐用常量增强可读性或 node.nodeType 1。nodeName 的行为取决于节点类型不能反推物理类型nodeName 返回字符串但其值和大小写规则随节点类型而异元素节点返回大写标签名如 DIV在 HTML 文档中不区分大小写XML 中则保留原始大小写文本节点固定为 #text注释节点固定为 #comment文档节点固定为 #document文档类型节点DOCTYPE返回如 html 或 !DOCTYPE浏览器实现略有差异因此仅凭 nodeName DIV 只能说明它“可能是元素”但无法排除自定义元素或 SVG 元素等情形而 nodeName #text 虽然大概率是文本节点仍需用 nodeType 3 确认——因为某些环境如旧版 IE对 nodeName 的处理不一致。 Cleanup.pictures 智能移除图片中的物体、文本、污迹、人物或任何不想要的东西

更多文章