W3C ?? DOM
文檔對象模型 (DOM) 是與平臺和語言無關的接口,允許程序和腳本動態地訪問和更新文檔的內容,結構和樣式。文檔可以進一步處理,處理的結果可以放回到所提供的頁面中。
表
3-1??
用于處理
XML
文檔的
DOM
元素屬性
屬性名
|
描述
|
childNodes |
返回當前元素所有子元素的數組 |
firstChild |
返回當前元素的第一個下級子元素 |
lastChild |
返回當前元素的最后一個子元素 |
nextSibling |
返回緊跟在當前元素后面的元素 |
nodeValue |
指定表示元素值的讀 / 寫屬性 |
parentNode |
返回元素的父節點 |
previousSibling |
返回緊鄰當前元素之前的元素 |
表
3-2???
用于遍歷
XML
文檔的
DOM
元素方法
方法名
|
描述
|
getElementById(id)? (document) |
獲取有指定唯一 ID 屬性值文檔中的元素 |
getElementsByTagName(name) |
返回當前元素中有指定標記名的子元素的數組 |
hasChildNodes() |
返回一個布爾值,指示元素是否有子元素 |
getAttribute(name) |
返回元素的屬性值,屬性由 name 指定 |
表
3-3???
動態創建內容時所用的
W
屬性
/
方法
|
描述
|
document.createElement(tagName) |
文檔對象上的 createElement 方法可以創建由 tagName 指定的元素。如果以串 div 作為方法參數,就會生成一個 div 元素 |
Document.createTextNode(text) |
文檔對象的 createTextNode 方法會創建一個包含靜態文本的節點 |
<element>.appendChild(childNode) |
appendChild 方法將指定的節點增加到當前元素的子節點列表。例如,可以增加一個 option 元素,作為 select 元素的子節點。 |
<element>.getAttribute(name) |
這些方法分別獲得和設置元素中 name 屬性的值 |
<element>.setAttribute(name,value) |
|
<element>.insertBefore(newNode,targetNode) |
這個方法將節點 newNode 作為當前元素的子節點插到 targetNode 元素前面 |
<element>.removeAttribute(name) |
這個方法從元素中刪除屬性 name |
<element>.removeChild(childNode) |
這個方法從元素中刪除子 childNode |
<element>.replaceChild(newNode,oldNode) |
這個方法將節點 oldNode 替換為節點 newNode |
<element>.hasChildNodes() |
這個方法返回一個布爾值,指示元素是否有子元素 |
關于瀏覽器的不兼容性
如果使用 appendChild 將 <tr> 元素直接增加到 <table> 中,則在 IE 中這一行并不出現,但在其他瀏覽器中卻會顯示出來,對此的解決之道是,將 <tr> 元素增加到表的 <tbody> 元素中,這種解決辦法在所有瀏覽器中都能正確工作。
關于 setAttribute 方法 ,IE 也有麻煩。 IE 不能使用 setAttribute 正確地設置 class 屬性 , 對此有一個跨瀏覽器的解決方法,即同時使用 setAttribute(“class”,”newClassName”) 和 setAttribute(“className”, “newClassName”) 。另外,在 IE 中不能使用 setAttribute 設置 style 屬性。最能保證瀏覽器兼容的技術不是 <element>.setAttribute(“style”, “font-weight:bold”), 而是 <element>.style.cssText=“font-weight:bold;” 。
?