Javascript入門學(xué)習(xí)第九篇 Javascript DOM 總結(jié)第1/2頁
2024-05-06 14:17:43
供稿:網(wǎng)友
1, 創(chuàng)建節(jié)點(diǎn)。
createElement():
var a = document.createElement(“p”);
它創(chuàng)建的是一個(gè)元素節(jié)點(diǎn),所以 nodeType 等于 1 。
a.nodeName 將返回 p ;
注意;createElement()方法創(chuàng)建出來的新元素節(jié)點(diǎn)不會(huì)被自動(dòng)添加到文檔里,既然沒添加到文檔里,說明它還是一個(gè)游離的狀態(tài)。所以它也沒有nodeParent屬性。
如果想把它添加到文檔里,可以使用 appendChild()或者insertBefore()方法或者replaceChild()方法。當(dāng)然我們?cè)谇懊娴睦又校约簩懥艘粋€(gè)insertAfter()方法;
比如:
var a = document.createElement(“p”);
document.body.appendChild(a);
注意: appendChild()默認(rèn)是添加到文檔的最后。也就是lastChild子節(jié)點(diǎn)。
如果想添加到某個(gè)地方,可以使用insertBefore()。
如果想在元素插入之前給元素添加屬性。可以這么做:
var a = document.createElement(“p”);
a.setAttribute(“title”,”my demo”);
document.body.appendChild(a);
createTextNode():
var b = document.createTextNode(“my demo”);
它創(chuàng)建的是一個(gè)文本節(jié)點(diǎn),所以nodeType等于 3 。
b.nodeName 將返回 #text ;
跟createElement()一樣,用createTextNode()創(chuàng)建的節(jié)點(diǎn)也不會(huì)自動(dòng)添加到文檔里。需要使用appendChild()或者insertBefore()方法或者replaceChild()方法。
他經(jīng)常與createElement()配合使用,知道為什么嗎?(一個(gè)元素節(jié)點(diǎn),一個(gè)文本節(jié)點(diǎn)。)
var mes = document.createTextNode(“hello world”);
var container = document.createElement(“p”);
container.appendChild(mes);
document.body.appendChild(container);
2, 復(fù)制節(jié)點(diǎn)。
cloneNode(boolean) :
它有一個(gè)參數(shù)。
var mes = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(mes);
document.body.appendChild(container);
var newpara = container.cloneNode(true);//true和false的區(qū)別
document.body.appendChild(newpara );
注意:
true的話:是<p>aaaa</p> 克隆。
false: 只克隆 <p></p> ,里面的文本不克隆。
可以自己寫個(gè)例子,然后用 firebug 看看。
克隆后的新節(jié)點(diǎn),和createTextNode()一樣 不會(huì)被自動(dòng)插入到文檔 。需要appendChild();
另外還有一個(gè)注意: 如果克隆后,id一樣,不要忘記用 setAttribute(“id” , “ another_id “);
改變新的節(jié)點(diǎn)的ID。
3, 插入節(jié)點(diǎn)。
appendChild() :
給元素追加一個(gè)子節(jié)點(diǎn), 新的節(jié)點(diǎn) 插入到 最后。