转载自: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