重要引见不经常使用的DOM范例
这里引见我们的其他范例,包括以下几个范例:
Text范例
Comment范例
CDATASection范例
DocumentType范例
DocumentFragment范例
Attr范例
<!– more –>
Text范例
文本节点由Text范例示意
特征
nodeType值为3
nodeName为”#text”
nodeValue为节点包括的文本
parentNode是一个Element
不支撑(没有)子节点
我们能够经由过程nodeValue/data接见Text节点包括的文本.
要领
appendData(text)
将text增加到节点末端deleteData(offset,count)
从offset指定位置最先删除count个字符insertData(offset,text)
从offset指定位置插进去textreplaceData(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剖析手艺
Comment范例
这就是解释了,在DOM中经由过程Comment范例来示意我们的解释.
特征
nodeType值为8
nodeName值为”#comment”
nodeValue值为解释的内容
parentNode多是Document或Element
不支撑(没有)子节点
值得注重的是Comment范例和Text范例继续自雷同的基类,一切在要领上除了splitText()
外一切字符串操纵要领都与Text范例相似.
建立
document.createComment(text)
这个也与文本节点相似,而我们也很少接见这类节点,所以这里不再赘述
CDATASection范例
只针对XML文档,示意的是CDATA地区,这与Comment相似,而且该范例继续自Text范例,因而除了splitText()
要领以外一切字符串操纵要领都相似
特征
nodeType值为4
nodeName值为”#cdata-section”
nodeValue为CDATA地区中的内容
parentNode多是Document或Element
不支撑(没有)子节点
建立
document.createCDataSection()
能够建立CDATA地区,传入参数为传入节点的内容.
DocumentType范例
这在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以后的文本.
DocumentFragment范例
在一切节点范例中,只要该范例在文档中没有对应的标记.DOM划定文档片断是一种”轻量级”的文档,能够包括和掌握节点,但不会和完全的文档那样占用分外资本.
特征
nodeType 值为11
nodeName 值为”#document-fragment”
nodeValue 为null
parentNode为null
子节点能够是Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference
它能够说是一个文档节点的堆栈
建立
document.createDocumentFragment()
要领建立文档片断,它继续了Node一切的要领,我们能够经由过程之前所说的要领增加节点到文档片断中,再经由过程要领将文档片断增加到文档中,然则这过程当中发作的并非将文档片断增加到文档树.
文档片断自身永久不会成为文档树的一部分,实际上批示将其一切子节点增加(转移)到响应位置.
Attr范例
元素特征在DOM中以Attr范例示意,在一切浏览器中我们都能够接见Attr范例的组织函数和原型.能够说特征就是存在于元素的attributes属性中的节点.
特征
nodeType值为2
nodeName为特征名
nodeValue为特征值
parentNode值为null
HTML中不支撑(没有)子节点
XML中子节点能够是Text或EntityReference
只管我们称它为节点,然则特征并不被认为是DOM文档树的一部分.
属性
name
value
specified
这些在我们之前的章节也有所引见,不再赘述
建立
document.createAttribute(name)
能够建立响应的特征,传入参数为特征名