注释在DOM中是通过Comment类型来表示的。Comment节点具有下列特征:
Comment类型与Text类型继承自相同的基类,因此它拥有除了splitText()之外所有字符串操作方法。与Text类型相似,也可以通过nodeValue或data属性来取得注释的内容。
// 注释节点可以通过其父节点来访问,以下面的代码为例
// 在此,注释节点是元素的一个子节点,因此可以通过下面的代码来访问它
var div = document.getElementById('myDiv');
var comment = div.firstChild;
alert(comment.data); // "A comment"
使用document.createComment()并为其传递注释文本也可以创注释节点,如下面的例子所示:
var comment = document.createComment("A comment");
CDATASection类型
CDATASection类型只针对基于XML的文档,表示的是CDATA区域。与Comment类似,继承自Text类型,因此拥有除了splitText()之外的所有字符串操作方法。具有以下特征:
- nodeType的值为4;
- nodeName的值为“#cdata-section”;
- nodeValue的值是CDATA区域中的内容;
- parentNode可能是Document或Element;
- 不支持(没有)子节点;
在真正的XML文档中,可以使用document.createCDATASection()来创建CDATA区域,只需为其传入节点的内容即可。
DucumentType类型
该类型在Web浏览器中并不常用,仅有Firefox、Safari、Opera支持。DocumentType包含着与文档的doctype有关的所有信息,它具有下列特征:
- nodeType的值为10;
- nodeName的值为doctype的名称;
- nodeValue的值为null;
- parentNode是Document;
- 不支持(没有)子节点;
DocumentFragment类型
在所有节点类型中,只有DocumentFragment在文档中没有对应的标记。Dom规定文档片段(document fragment)是一种“轻量级”的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。DocumentFragment节点具有下列特征:
- nodeType的值为11;
- nodeName的值为“#document-fragment”;
- nodeValue的值为null;
- parentNode的值为null;
- 子节点可以是Element、ProcessingInstruction、Comment、Text、CDATASection或EntityReference。
Attr类型
元素的特性在DOM中以Attr类型来表示。在所有浏览器中(包括IE8),都可以访问Attr类型的构造函数和原型。从技术角度讲,特性就是存在于元素的attributes属性中的节点。特性节点具有下列特征:
- nodeType的值为2;
- nodeName的值是特性的名称;
- nodeValue的值是特性的值;
- parentNode的值为null;
- 在HTML中不支持(没有)子节点;
- 在XML中子节点可以是Text或EntityReference。