insertBefore()方法用作:在指定的現(xiàn)有子節(jié)點之前插入一個子節(jié)點。
如果給定的子對象是對文檔中現(xiàn)有節(jié)點的引用,則insertBefore()將其從其當(dāng)前位置移動到新位置(請參見下面的“更多示例”)。
使用appendchild()方法將一個節(jié)點添加到指定父節(jié)點的子節(jié)點列表的末尾。
node.insertBefore(newNode, existingNode)
var newElem = document.createElement("h3"); // 創(chuàng)建一個新的h3元素 var newContent = document.createTextNode("Hi there"); // 創(chuàng)建一些文本內(nèi)容 newElem.appendChild(newContent); // 將文本節(jié)點添加到新創(chuàng)建的h3 var body = document.body; // 獲取 BODY body.insertBefore(newElem, body.childNodes[0]); // 在BODY的第一個子元素之前插入H3測試看看?/?
注意:如果要創(chuàng)建帶有文本的新元素,請記住將文本創(chuàng)建為Text節(jié)點,然后將其附加到元素,然后將該元素附加到文檔。
所有瀏覽器完全支持insertBefore()方法:
方法 | ![]() | ![]() | ![]() | ![]() | ![]() |
insertBefore() | 是 | 是 | 是 | 是 | 是 |
參數(shù) | 描述 |
---|---|
newNode | 您要插入的節(jié)點對象 |
existingNode | 您要在其之前插入新節(jié)點的子節(jié)點。如果設(shè)置為null,則insertBefore方法將在末尾插入newnode |
返回值: | 一個Node對象,表示插入的節(jié)點 |
---|---|
DOM版本: | DOM級別1 |
創(chuàng)建一個<p>元素并將其插入到<div>元素中:
var para = document.createElement("p"); // 創(chuàng)建一個 <p> 節(jié)點 var txt = document.createTextNode("這是一個段落.");// 創(chuàng)建一個文本節(jié)點 para.appendChild(txt);// 追加文本到 <p> var div = document.getElementById("demo");// 獲取帶有"id=demo"的DIV div.insertBefore(para, div.childNodes[0]);// 在DIV的第一個子元素之前插入P節(jié)點測試看看?/?
此示例將元素從其當(dāng)前位置移動到新位置:
var elem = document.getElementById("myList2").lastElementChild; var list1 = document.getElementById("myList1"); list1.insertBefore(elem, list1.childNodes[0]);測試看看?/?
HTML DOM參考:node.hasChildNodes()方法
HTML DOM參考:node.appendChild()方法
HTML DOM參考:node.removeChild()方法
HTML DOM參考:node.replaceChild()方法
HTML DOM參考:document.createElement()方法
HTML DOM參考:document.createTextNode()方法
HTML DOM參考:document.adoptNode()方法
HTML DOM參考:document.importNode()方法