JavaScript にはありますが、 jQuery や他のライブラリを使用せずに、要素の後にinsertBefore()
要素を挿入するにはどうすればよいでしょうか?
ベストアンサー1
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
referenceNode
後に配置するノードはどこでしょうかnewNode
。referenceNode
親要素内の最後の子ノードであれば問題ありませreferenceNode.nextSibling
んnull
。insertBefore
リストの末尾に追加することでそのケースを処理します。
それで:
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
次のスニペットを使用してテストできます。
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
var el = document.createElement("span");
el.innerHTML = "test";
var div = document.getElementById("foo");
insertAfter(div, el);
<div id="foo">Hello</div>