XML DOM insertBefore() メソッド

定義と使用方法

insertBefore() メソッドは現在のノードの指定された子ノードの前に新しい子ノードを挿入します。

注意:newchild が木の中にすでにある場合、まずそれを削除します。

構文

nodeObject.insertBefore(newchild,existingnode,

)

) 説明
newchild 必須。Node オブジェクト。挿入する新しい子ノード。
existingnode

必須。Node オブジェクト。新しい子ノードを挿入する前にその前に挿入するノード。

既存のノードが空であれば、新しい子ノードを子ノードリストの末尾に挿入します。

技術的詳細

DOM バージョン: Core Level 1 Node オブジェクト。DOM Level 3 で修正。
返り値: Node オブジェクト。挿入されるノード。

以下のコードは "books.xml" をロードし、新しい <book> ノードを作成し、最後の <book> ノードの前に挿入します:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var newNode = xmlDoc.createElement("book");
    var x = xmlDoc.documentElement;
    var y = xmlDoc.getElementsByTagName("book");
    document.getElementById("demo").innerHTML =
    "Book elements before: " + y.length + "<br>";
    x.insertBefore(newNode, y[3]);
    document.getElementById("demo").innerHTML +=
    "Book elements after: " + y.length;
}

自分で試してみる

ブラウザサポート

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
サポート サポート サポート サポート サポート

すべての主要ブラウザがサポートしています insertBefore() メソッド。