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