JavaScript中DOM的层次节点(二)
1 Text类型
Text类型为文本节点,包含的是可照字面解释的纯文本内容,可以包含转义后的HTML字符,但不能包含HTML代码。
类型 | 值 |
---|---|
nodeType | 3 |
nodeName | "#text" |
nodeValue | 节点所包含的文本 |
parentNode | Element |
没有子节点 |
可以通过nodeValue和data属性访问Text节点中包含的文本。
- appendData(text):将text添加到节点的末尾。
- deleteData(offset,count):从offset置顶的位置开始删除count个字符。
- insertData(offset,text):在offset位置插入text。
- replaceData(offset,count,text):用text替换从offset指定的文职到offset+count为止的文本。
- splitText(offset):从offset指定的位置将当前文本节点分成两个文本节点。
- substringData(offset,count):提取从offset指定的位置开始到offset+count处的字符串。
- length:长度。
创建文本节点
document.createTextNode("<span>Hello world</span>");
document.createElement("div");
document.body.appendChild(element);//在未添加之前,虽然创建,但是不会显示出来
如果创建多个文本节点,且是相邻的同胞节点,那么两个节点的文本会连起来显示,中间不会有空格。
2 Comment类型
类型 | 值 |
---|---|
nodeType | 8 |
nodeName | "#comment" |
nodeValue | 注释的内容 |
Comment类型与Text类型继承自相同的基类,因此它拥有除splitText()之外的所有字符串操作方法,与Text类似,也可以使用nodeValue和data属性来取得注释的内容。
3 CDATASection类型
CDATASection类型只针对XML文档,表示的是CDATA区域,与Comment类似,继承自Text类型,因此拥有除splitText()之外的所有字符串操作方法。
类型 | 值 |
---|---|
nodeType | 4 |
nodeName | "#cdata-section" |
nodeValue | CDATA区域中的内容 |
没有子节点 |
4 DocumentType类型
此类型在Web浏览器中并不常用,只有Firefox、Safari和Opera支持。
类型 | 值 |
---|---|
nodeType | 10 |
nodeName | doctype名称 |
nodeValue | null |
DocumentType对象不能动态创建,只能通过解析文档代码的方式来创建。若浏览器支持此类型,会把此对象保存在document.doctype中。
5 Attr类型
特性就是元素attribute属性的节点。在所有浏览器中,都可以访问Attr类型的构造函数和原型。
类型 | 值 |
---|---|
nodeType | 11 |
nodeName | 特性的名称 |
nodeValue | 特性的值 |
特性虽然是节点,但不会被认为是DOM文档树的一部分,最常用的方法为getAttribute(),setAttribute()和remveAttribute(),很少会直接引用特性节点。