JavaScript<四>_DOM

DOM

DOM:document objectmodel 文檔對象模型,使得用戶可以與網頁做互動;其實就是將標記型的文檔以及文檔中的內容當成對象。

爲什麼要將這些文檔以及其中的標籤封裝成對象呢?

因爲可以在對象中定義其屬性和行爲,可以方便操作這些對象。

dom三層模型

dom1:將html文檔封裝成爲對象;

dom2:將xml文檔封裝成對象;

dom3:將xml文檔封裝成對象;

標籤之間存在着層次關係:

html

    |--head

        |--title

        |--base

        |--meta

        |--link

        |--style

        |--script

    |--body

        |--table

            |--tbody

                |--tr

                    |--td

                    |--th

        |--div

        |--form

        |--a

通過這個標籤層次,可以形象的看做是一個樹形結構,成爲標籤型文檔,加載進內存的是一顆DOM樹。這些標籤以及標籤的數據都是這棵樹上的節點。

當標記型文檔加載進內存,那麼內存中有一個對應的DOM樹。

DOM對已標記型文檔的解析有一個弊端就是文檔過大,相對耗費資源,對於大型文檔可以使用SAX這種方式解析。

DOM樹:節點

DHTML:動態html 包含html、css、dom、javascript,多項技術的綜合體。

html:將數據進行標籤的封裝

dom:將標籤以及標籤中的數據封裝成對象

css:負責標籤中數據的樣式

javascript:將三者進行融合,通過程序設計的方式來完成動態效果的操作。

節點類型:標籤型節點:類型1

        屬性節點    類型2

        文本型節點:類型3

        註釋型節點:類型8

        document 類型9

注意:標籤之間存在空行時,會出現一個空白的文本節點,在獲取節點時一定要注意。

節點的關係:

父節點,

子節點

兄弟節點

    上一個兄弟節點

    下一個兄弟節點

獲取通過節點的層次關係完成。

也可以通過document對象完成:

getElementById:通過id屬性值獲取對應的節點對象,如果有多一個id值相同,獲取到的是第一個id所屬對象,儘量保證ID的唯一性,返回的是一個對象。

getElementsByName:通過標籤的name屬性值獲取對象,返回的是一堆對象,其實是一個對象的數組。

getElementsByTagName:即沒有id沒有name時,可以通過標籤名來獲取節點對象,返回的是一堆對象,其實是一個對象數組,大多數容器型標籤都具備該方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章