主要介紹不經常使用的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)
能夠建立相應的特性,傳入參數爲特性名