◆DOM描繪了一個層次化的節(jié)點樹导坟,允許開發(fā)人員添加、移除和修改頁面的某一部分圈澈。
◆每個節(jié)點都擁有各自的特點惫周、數(shù)據(jù)和方法,另外也與其他節(jié)點存在某種關(guān)系康栈。節(jié)點之間的關(guān)系構(gòu)成了層次闯两,而所有頁面標(biāo)記則表現(xiàn)為一個以特定節(jié)點為根節(jié)點的樹形結(jié)構(gòu)。
◆文檔節(jié)點是每個文檔的根節(jié)點谅将。文檔節(jié)點只有一個子節(jié)點漾狼,在HTML頁面中,它就是<html>元素饥臂,我們稱之為文檔元素逊躁。文檔元素是文檔最外層元素,每個文檔只能有一個文檔元素隅熙。
每一段標(biāo)記都可以通過樹中的一個節(jié)點來表示:
-->HTML元素通過元素節(jié)點表示
-->特性(attribute)通過特性節(jié)點表示
-->文檔類型通過文檔類型節(jié)點表示
-->注釋通過注釋節(jié)點表示
......
總共有12中節(jié)點類型稽煤,這些類型都繼承自一個基類型。
Node類型囚戚、Document類型酵熙、Element類型、Text類型驰坊、Comment類型匾二、CDATASection類型懂昂、DocumentType類型锈津、DocumentFragment類型颖侄、Attr類型
==》Node類型:
DOM1級定義了一個Node接口就斤,該接口將由DOM中的所有節(jié)點類型實現(xiàn)工三。
JavaScript中的所有節(jié)點類型都繼承自Node類型梯澜,因此所有節(jié)點類型都共享著相同的基本屬性和方法婿失。
NodeList:NodeList是DOM操作(getElementsByTagName等)取出來的集合享幽,是集合而不是普通的數(shù)組睹限,但是他們有數(shù)組的一些屬性譬猫,例如length讯檐、下標(biāo)索引,但是他們也有自己的屬性染服,例如item裂垦,另外NodeList最大的特點就是時效性(live)。
●nodeType屬性
●nodeName屬性和nodeValue屬性
●節(jié)點關(guān)系
●操作節(jié)點
●其他方法
●nodeType屬性:(共十二種)
通過下述方法可以判斷節(jié)點類型:
●nodeName屬性和nodeValue屬性
在使用這兩個值以前肌索,最好是像下面這樣先檢測一下節(jié)點的類型蕉拢。
對于元素節(jié)點,nodeName中保存的始終都是元素的標(biāo)簽名诚亚,而nodeValue的值始終為null晕换。
●節(jié)點關(guān)系(childNodes、parentsNode站宗、previousSibling闸准、nextSibling、firstChild梢灭、lastChild)
每個節(jié)點都有一個childNodes屬性夷家,其中保存著一個NodeList對象。
將NodeList對象轉(zhuǎn)換為數(shù)組:
每個節(jié)點都有一個parentNode屬性,該屬性指向文檔樹中的父節(jié)點钥顽。
包含在childNodes列表中的每個節(jié)點都具有相同的父節(jié)點(parentNode屬性)义屏,且他們之間都是同胞節(jié)點,通過previousSibling屬性和nextSibling屬性可以訪問同一列表中的其他節(jié)點蜂大。
父節(jié)點的firstChild和lastChild屬性分別指向其childNodes列表中的第一個和最后一個節(jié)點闽铐。firstChild相當(dāng)有someNode.childNodes[0],lastChild相當(dāng)于someNode.childNodes[someNode.childNodes.length-1]
hasChildNodes()方法:用于判斷一個元素是否有子節(jié)點