Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
insertBefore() は Node インターフェイスのメソッドで、参照先ノードの前にこの親ノードの子としてノードを挿入します。
指定されたノードが既に文書中に存在した場合、 insertBefore() はこれを現在の位置から新しい位置に移動します。(つまり、既存の親ノードから自動的に削除され、指定された新しい親に追加されます。)
これは、 1 つのノードが文書中に同時に 2 か所に存在できないことを意味します。
メモ: Node.cloneNode() を使用すると、ノードを新しい親の下に追加する前に複製を作成することができます。なお、 cloneNode() で作成された複製は自動的には同期されません。
指定された子が DocumentFragment である場合、 DocumentFragment の内容全体が指定された親ノードの子リストに移動されます。
挿入するノードです。
referenceNodenewNode が挿入される位置の前にあるノードです。このノードが null である場合は、 newNode はこのノードの子ノードの末尾に挿入されます。
メモ: referenceNode は省略可能な引数ではありません。 明示的に Node または null を渡す必要があります。 渡さなかった場合や無効な値を渡した場合の動作は、ブラウザーのバージョンによって異なる可能性があります。
追加された子ノードを返します(ただし newNode が DocumentFragment の場合は、空の DocumentFragment を返します)。
挿入前の検証
メモ: insertAfter() メソッドはありません。 これは insertBefore メソッドと Node.nextSibling の組み合わせでエミュレートできます。
前の例では、 sp1 は以下のようにして sp2 の後に挿入することができます。
sp2 に次の兄弟ノードがない場合、これが最後の子ノードです。 — sp2.nextSibling は null を返し、 sp1 は子ノードリストの末尾(sp2 の直後)に挿入されます。
要素を最初の子要素の前に挿入するために、 firstChild プロパティを使用します。
要素に最初の子ノードがない場合、 firstChild は null になります。その場合も、要素は親ノードの最後の子ノードの後に追加されます。
親要素に最初の子ノードがない場合は、最後の子ノードもありません。結果的に、新しく挿入された要素は唯一の要素になります。
| DOM # dom-node-insertbefore |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年7月22日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.