---------- android培訓
java培訓 期待與您交流!------------
DOM:
(document object model)文檔對象模型;
dom其實就是將一些標記型的文檔以及文檔中的內容當成對象.
爲什麼要將這些文檔以及其中的標籤封裝成對象呢?
因爲可以在對象中定義屬性和行爲,可以方便操作這些對象.
dom在封裝標記型文檔時,有三層模型.
dom1:針對html文檔
dom2:針對xml文檔
dom3:針對xml文檔
html,xhtml,xml 這些都是標記型文檔.
dhtml:是多個技術的綜合體,叫做動態的html.
html:負責將數據進行標籤的封裝
css:負責標籤的樣式
dom:負責將標籤中的數據封裝成對象
javascript:負責通過程序設計方式來操作這些對象.
標記型文檔存在着層次關係,比如:
html
|--head
|--base
|--link
|--ment
|--style
|--script
|--body
|--div
|--from
|--input
|--select
|--span
|--a
|--table
|--tbody
|--tr
|--td
|--th
|--dl
|--dt
|--dd
可以看出,通過這些標籤的層次,可以形象的看作是一個樹型結構.
那麼我也稱標記型文檔,加載進內存的是一顆dom樹
這些標籤以及標籤的數據都是這棵樹上的節點.
dom對標記型解析有一個弊端,就是在文檔過大的情況下,相對耗資源,
對於大型文檔可以使用(SAX)這種方式解析
節點類型:
標籤型節點: 類型爲1
屬性節點: 類型爲2
文本型節點: 類型爲2
註釋型節點: 類型爲8
document: 類型爲9
注意:標籤之間存在空行時,會出現一個空白的標籤文本,在獲取節點時一定要注意.
節點的關係:
父節點 parentNode:
子節點 childNodes:
兄弟節點
上一個兄弟節點:previousSibling
下一個兄弟節點:nextSibling
--------------------------------------------------------------------------------------------
獲取節點可以通過節點的層次關係來完成
getElementById:通過id屬性值獲取對應的節點對象.如果有多個id值相同,獲取到的是第一個id所屬對象.
儘量保證id的唯一性,返回的是一個對象.
getElementByName:通過標籤的name屬性值獲取對象,返回的一堆對象,其實是一個對象數組.
getElementByTagName:即沒有id也沒有name時,可以通過標籤名來獲取節點對象,返回的是一堆對象,
其實是一個對象數組,大多容器標籤都具備該方法.