DOM节点是什么?

  • 内容
  • 评论
  • 相关

在网页中所有对象和内容都被称为节点,如文档、元素、文本、属性、注释等。节点(Node)是 DOM 最基本的单元,并派生出不同类型的节点,它们共同构成了文档的树形结构模型。

节点类型

根据 DOM 规范,整个文档是一个文档节点,每个标签是一个元素节点,元素包含的文本是文本节点,元素的属性是一个属性节点,注释属于注释节点,以此类推。

DOM 支持的节点类型说明如表所示。

DOM 节点类型说明
节点类型 说明 可包含的子节点类型
Document 表示整个文档,DOM 树的根节点 Element(最多一个)、ProcessingInstruction、Comment、DocumentType
DocumentFragment 表示文档片段,轻量级的 Document 对象,仅包含部分文档 ProcessingInstruction、Comment、Text、CDATASection、EntityReference
DocumentType 稳文档定义的实体提供接口 None
ProcessingInstruction 表示处理指令 None
EntityReference 表示实体引用元素 ProcessingInstruction、Comment、Text、CDATASection、EntityReference
Element 表示元素 Text、Comment、ProcessingInstruction、CDATASection、EntityReference
Attr 表示属性 Text、EntityReference
Text 表示元素或属性中的文本内容 None
CDATASection 表示文档中的 CDATA 区段,其包含的文本不会被解析器解析 None
Comment 表示注释 None
Entity 表示实体 ProcessingInstruction、Comment、Text、CDATASection、EntityReference
Notation 表示在 DTD 中声明的符号 None

使用 nodeType 属性可以判断一个节点的类型,取值说明如表所示。

nodeType 属性返回值说明
节点类型 nodeType 返回值 常量名
Element 1 ELEMENT_NODE
Attr 2 ATTRIBUTE_NODE
Text 3 TEXT_NODE
CDATASection 4 CDATA_SECTION_NODE
EntityReference 5 ENTITY_REFERENCE_NODE
Entity 6 ENTITY_NODE
ProcessingInstruction 7 PROCESSING_INSTRUCTION_NODE
Comment 8 COMMENT_NODE
Document 9 DOCUMENT_NODE
DocumentType 10 DOCUMENT_TYPE_NODE
DocumentFragment 11 DOCUMENT_FRAGMENT_NODE
Notation 12 NOTATION_NODE

示例

下面示例演示如何借助节点 nodeType 属性检索当前文档中包含元素的个数。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>DOM</h1>
<p>DOM 是<cite>Document Object Model</cite>首字母简写,中文翻译为<b>文档对象模型</b>,是<i>W3C</i>组织推荐的处理可扩展标识语言的标准编程接口。</p>
<ul>
    <li>D 表示文档,HTML 文档结构。</li>
    <li>O 表示对象,文档结构的 JavaScript 脚本化映射。</li>
    <li>M 表示模型,脚本与结构交互的方法和行为。</li>
</ul>
<script>
function count (n) {  //定义文档元素统计函数
    var num = 0;  //初始化变量
    if (n.nodeType == 1)  //检查是否为元素节点
    num ++;  //如果是,则计数器加1
    var son = n.childNodes;  //获取所有子节点
    for (var i = 0; i < son.length; i ++) {  //循环统一每个子元素
        num += count (son[i]);  //递归操作
    }
    return num;  //返回统计值
}
console.log("当前文档包含" + count (document) + "个元素");  //计算元素的总个数
</script>
</body>
</html>

演示效果如下:

本文标题:DOM节点是什么?

本文地址:https://www.hosteonscn.com/7023.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注