概念:HTML DOM 定義了訪問(wèn)和操作 HTML 文檔的標(biāo)準(zhǔn)方法。
DOM 將 HTML 文檔表達(dá)為樹結(jié)構(gòu)。HTML DOM 定義了所有 HTML 元素的對(duì)象和屬性,以及訪問(wèn)它們的方法。換言之全景,HTML DOM 是關(guān)于如何獲取、修改牵囤、添加或刪除 HTML 元素的標(biāo)準(zhǔn)爸黄。
在 HTML DOM 中,所有事物都是節(jié)點(diǎn)奔浅。DOM 是被視為節(jié)點(diǎn)樹的 HTML。
整個(gè)文檔是一個(gè)文檔節(jié)點(diǎn)诗良,每個(gè) HTML 元素是元素節(jié)點(diǎn)汹桦,HTML 元素內(nèi)的文本是文本節(jié)點(diǎn),每個(gè) HTML 屬性是屬性節(jié)點(diǎn)鉴裹,注釋是注釋節(jié)點(diǎn)
父節(jié)點(diǎn)擁有子節(jié)點(diǎn)舞骆。同級(jí)的子節(jié)點(diǎn)被稱為同胞(兄弟或姐妹)钥弯。
1.訪問(wèn) HTML 元素(節(jié)點(diǎn))
getElementById() 方法
getElementById() 方法返回帶有指定 ID 的元素:html中,<p id="intro"></p> 對(duì)應(yīng)js中var element=document.getElementById("intro");
getElementsByTagName() 方法
getElementsByTagName() 返回帶有指定標(biāo)簽名的所有元素督禽。document.getElementsByTagName("p");
getElementsByClassName() 方法
查找?guī)в邢嗤惷乃?HTML 元素document.getElementsByClassName("intro");
getElementsByClassName() 在 Internet Explorer 5,6,7,8 中無(wú)效脆霎。
2.innerHTML 屬性
獲取元素內(nèi)容的最簡(jiǎn)單方法是使用 innerHTML 屬性。innerHTML 屬性對(duì)于獲取或替換 HTML 元素的內(nèi)容很有用狈惫。
<p id="intro">Hello World</p>,獲取元素內(nèi)容:
var txt ?= ?document.getElementById("intro").innerHTML;
document.getElementById("intro").innerHTML = “可替換的文字”;
3.nodeName 屬性
nodeName 屬性規(guī)定節(jié)點(diǎn)的名稱睛蛛。nodeName 是只讀的,元素節(jié)點(diǎn)的 nodeName 與標(biāo)簽名相同胧谈,屬性節(jié)點(diǎn)的 nodeName 與屬性名相同忆肾,文本節(jié)點(diǎn)的 nodeName 始終是 #text,文檔節(jié)點(diǎn)的 nodeName 始終是 #document菱肖,nodeName 始終包含 HTML 元素的大寫字母標(biāo)簽名客冈。例如<button>對(duì)應(yīng)的nodeName是“BUTTON”
4.nodeValue 屬性
nodeValue 屬性規(guī)定節(jié)點(diǎn)的值。元素節(jié)點(diǎn)的 nodeValue 是 undefined 或 null,文本節(jié)點(diǎn)的 nodeValue 是文本本身,屬性節(jié)點(diǎn)的 nodeValue 是屬性值
5.改變 HTML 樣式
<p id="p2">Hello world!</p>
document.getElementById("p2").style.color="blue";
6.appendChild創(chuàng)建新的 HTML 元素,如需向 HTML DOM 添加新元素稳强,您首先必須創(chuàng)建該元素(元素節(jié)點(diǎn))场仲,然后把它追加到已有的元素上。
? ? var para=document.createElement("p");這段代碼創(chuàng)建了一個(gè)新的
元素<p>:
? ?var node=document.createTextNode("This is new.");//如需向<p>
元素添加文本退疫,您首先必須創(chuàng)建文本節(jié)點(diǎn)渠缕。這段代碼創(chuàng)建文本節(jié)點(diǎn):
? ?para.appendChild(node);//然后您必須向<p>
元素追加文本節(jié)點(diǎn):
? ?var element=document.getElementById("d1");
? ?element.appendChild(para);最后,您必須向已有元素追加這個(gè)新元素蹄咖。
?insertBefore()
? ? var child=document.getElementById("p1");
? ? element.insertBefore(para,child);
removeChild()
? ? ? var parent=document.getElementById("div1");?
? ? ? var child=document.getElementById("p1");
? ? ? parent.removeChild(child);
replaceChild()
? ? ? var parent=document.getElementById("div1");
? ? ? var child=document.getElementById("p1");
? ? ? ?parent.replaceChild(para,child);