主要介绍不经常使用的DOM类型node
这里介绍咱们的其余类型,包括如下几个类型:浏览器
Text类型app
Comment类型函数
CDATASection类型编码
DocumentType类型code
DocumentFragment类型orm
Attr类型对象
<!-- more -->继承
文本节点由Text类型表示ci
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属性,保存着节点中字符的数目.且值与nodeValue.length和data.length相同.
修改时字符串会通过HTML/XML编码,因此对于小于号,大于号和引号咱们要进行转义
document.createTextNode()
接受一个参数,就是插入节点的文本,而后将会根据HTML/XML的格式进行编码.而且在建立时也会为其设置ownerDocument属性.固然咱们要将它添加进文档树中仍是须要以前介绍过的操做的.
normalize()
这个方法,在一个包含多个文本节点的父元素上调用该方法,会将全部文本节点合并成一个节点.
注意!(IE6):该方法会致使崩溃
Text类型提供了splitText
方法就是和规范化文本节点相反的一个方法,这个方法咱们在以前有介绍到,这是从文本节点提取数据的经常使用DOM解析技术
这就是注释了,在DOM中经过Comment类型来表示咱们的注释.
nodeType值为8
nodeName值为"#comment"
nodeValue值为注释的内容
parentNode多是Document或Element
不支持(没有)子节点
值得注意的是Comment类型和Text类型继承自相同的基类,全部在方法上除了splitText()
外全部字符串操做方法都与Text类型类似.
document.createComment(text)
这个也与文本节点相似,而咱们也不多访问这类节点,因此这里再也不赘述
只针对XML文档,表示的是CDATA区域,这与Comment相似,而且该类型继承自Text类型,所以除了splitText()
方法以外全部字符串操做方法都类似
nodeType值为4
nodeName值为"#cdata-section"
nodeValue为CDATA区域中的内容
parentNode多是Document或Element
不支持(没有)子节点
document.createCDataSection()
能够建立CDATA区域,传入参数为传入节点的内容.
这在Web浏览器中并不经常使用
nodeType值为10
nodeName值为doctype名称
nodeValue值为null
parentNode是Document
不支持(没有)子节点
在DOM 1级中,DocumentType对象不能动态建立,只能经过解析文档代码方式建立.支持它的浏览器会把DocumentType对象保存在document.doctype中.而且描述了DocumentType对象的3个属性:name,entities和notations.
name 表示文档类型名称
entities 即文档类型描述的尸体的NamedNodeMap对象
notations 是由文档类型描述的符号的NamedNodeMap对象
一般来讲只有name是有用的,它保存了<!DOCTYPE以后的文本.
在全部节点类型中,只有该类型在文档中没有对应的标记.DOM规定文档片断是一种"轻量级"的文档,能够包含和控制节点,但不会和完整的文档那样占用额外资源.
nodeType 值为11
nodeName 值为"#document-fragment"
nodeValue 为null
parentNode为null
子节点能够是Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference
它能够说是一个文档节点的仓库
document.createDocumentFragment()
方法建立文档片断,它继承了Node全部的方法,咱们能够经过以前所说的方法添加节点到文档片断中,再经过方法将文档片断添加到文档中,可是这过程当中发生的并非将文档片断添加到文档树.
文档片断自己永远不会成为文档树的一部分,实际上指挥将其全部子节点添加(转移)到相应位置.
元素特性在DOM中以Attr类型表示,在全部浏览器中咱们均可以访问Attr类型的构造函数和原型.能够说特性就是存在于元素的attributes属性中的节点.
nodeType值为2
nodeName为特性名
nodeValue为特性值
parentNode值为null
HTML中不支持(没有)子节点
XML中子节点能够是Text或EntityReference
尽管咱们称它为节点,可是特性并不被认为是DOM文档树的一部分.
name
value
specified
这些在咱们以前的章节也有所介绍,再也不赘述
document.createAttribute(name)
能够建立相应的特性,传入参数为特性名