DOM 节点类型概述

转载自:http://www.cnblogs.com/zhaowy/

一般节点至少拥有 nodeType nodeName 和 nodeValue 这三个基本属性。节点类型不同,这三个属性的值也不相同。

NodeType

nodeType属性返回节点类型的常数值。不同的类型对应不同的常数值,12种类型分别对应1到12的常数值。

元素节点              Node.ELEMENT_NODE(1)
属性节点              Node.ATTRIBUTE_NODE(2)
文本节点              Node.TEXT_NODE(3)
CDATA节点             Node.CDATA_SECTION_NODE(4)
实体引用名称节点       Node.ENTRY_REFERENCE_NODE(5)
实体名称节点          Node.ENTITY_NODE(6)
处理指令节点          Node.PROCESSING_INSTRUCTION_NODE(7)
注释节点              Node.COMMENT_NODE(8)
文档节点              Node.DOCUMENT_NODE(9)
文档类型节点          Node.DOCUMENT_TYPE_NODE(10)
文档片段节点          Node.DOCUMENT_FRAGMENT_NODE(11)
DTD声明节点            Node.NOTATION_NODE(12)

NodeName

返回节点名称

NodeValue

返回或设置当前节点的值,格式为字符串

  • 元素节点
    元素节点 element 对应网页的 HTML 标签元素。元素节点的节点类型 nodeType 值是1,节点名称 nodeName 值是大写的标签名,nodeValue 值是 null
    // 1 'BODY' null
    console.log(document.body.nodeType,document.body.nodeName,document.body.nodeValue)
    console.log(Node.ELEMENT_NODE === 1);//true
  • 特性节点
    元素特性节点 attribute 对应网页中HTML标签的属性,它只存在于元素的 attributes 属性中,并不是DOM文档树的一部分。特性节点的节点类型 nodeType 值是2,节点名称 nodeName 值是属性名,nodeValue 值是属性值
    <div id="test"></div>
    <script>
    var attr = test.attributes.id;
    //2 'id' 'test'
    console.log(attr.nodeType,attr.nodeName,attr.nodeValue)
    console.log(Node.ATTRIBUTE_NODE === 2);//true    
    </script>
  • 文本节点
    文本节点text代表网页中的HTML标签内容。文本节点的节点类型 nodeType 值是3,节点名称 nodeName 值是'#text',nodeValue 值是标签内容值
    <div id="test">测试</div>
    <script>
    var txt = test.firstChild;
    //3 '#text' '测试'
    console.log(txt.nodeType,txt.nodeName,txt.nodeValue)
    console.log(Node.TEXT_NODE === 3);//true    
    </script>
  • CDATA节点
    CDATASection 类型只针对基于 XML 的文档,只出现在 XML 文档中,表示的是 CDATA 区域,格式一般为
    <![CDATA[
    ]]>

    该类型节点的节点类型 nodeType 的值为4,节点名称nodeName的值为 '#cdata-section',nodevalue 的值是 CDATA 区域中的内容

  • 实体引用名称节点
    实体引用名称节点entry_reference的节点类型nodeType的值为5,节点名称nodeName的值为实体引用的名称,nodeValue的值为null

    //实体名称引用
    <pubinfo>Published by &publisher;</pubinfo>

     

  • 处理指令节点
    处理指令节点ProcessingInstruction的节点类型nodeType的值为7,节点名称nodeName的值为target,nodeValue的值为entire content excluding the target
  • 注释节点
    注释节点comment表示网页中的HTML注释。注释节点的节点类型nodeType的值为8,节点名称nodeName的值为'#comment',nodeValue的值为注释的内容
    <div id="myDiv"><!-- 我是注释内容 --></div>
    <script>
    var com = myDiv.firstChild;
    //8 '#comment' '我是注释内容'
    console.log(com.nodeType,com.nodeName,com.nodeValue)
    console.log(Node.COMMENT_NODE === 8);//true    
    </script>
  • 文档节点
    文档节点document表示HTML文档,也称为根节点,指向document对象。文档节点的节点类型nodeType的值为9,节点名称nodeName的值为'#document',nodeValue的值为null
    <script>
    //9 "#document" null
    console.log(document.nodeType,document.nodeName,document.nodeValue)
    console.log(Node.DOCUMENT_NODE === 9);//true    
    </script>
  • 文档类型节点
    文档类型节点DocumentType包含着与文档的doctype有关的所有信息。文档类型节点的节点类型nodeType的值为10,节点名称nodeName的值为doctype的名称,nodeValue的值为null
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    </head>
    <body>
    <script>
    var nodeDocumentType = document.firstChild;
    //10 "html" null
    console.log(nodeDocumentType.nodeType,nodeDocumentType.nodeName,nodeDocumentType.nodeValue);
    console.log(Node.DOCUMENT_TYPE_NODE === 10);
    </script>
    </body>
    </html>
  • 文档片段节点
    文档片段节点DocumentFragment在文档中没有对应的标记,是一种轻量级的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。该节点的节点类型nodeType的值为11,节点名称nodeName的值为'#document-fragment',nodeValue的值为null
    <script>
    var nodeDocumentFragment = document.createDocumentFragment();    
    //11 "#document-fragment" null
    console.log(nodeDocumentFragment.nodeType,nodeDocumentFragment.nodeName,nodeDocumentFragment.nodeValue);
    console.log(Node.DOCUMENT_FRAGMENT_NODE === 11);//true
    </script>
  • DTD声明节点
    DTD声明节点notation代表DTD中声明的符号。该节点的节点类型nodeType的值为12,节点名称nodeName的值为符号名称,nodeValue的值为null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值