CharacterData: before() メソッド
before() は CharacterData インターフェイスのメソッドで、一連の Node オブジェクトまたは文字列を、この CharacterData の親ノードの子リストの中、この CharacterData ノードの直前に挿入します。
構文
js
before(...nodes)
引数
nodes-
挿入する一連の
Nodeまたは文字列です。
例外
HierarchyRequestErrorDOMException-
階層内の指定された位置に新しいノードを挿入できない場合,つまり以下の条件のいずれかに該当する場合に発生します。
- 追加されたノードの 1 つを挿入すると循環参照なる場合、つまり、そのノードの 1 つがこの
CharacterDataノードの祖先である場合です。 - 追加されたノードのいずれかが
DocumentFragment,DocumentType,Element,CharacterDataのいずれでもない場合。 - この
CharacterDataノードが実際にはTextノードであり、その親がDocumentである場合。 - この
CharacterDataノードの親がDocumentで、挿入するノードの一つがDocumentFragmentであり、その中に 1 つ以上のElementがある場合、またはText子を持つ場合。
- 追加されたノードの 1 つを挿入すると循環参照なる場合、つまり、そのノードの 1 つがこの
例
before() メソッドを使うと、現在のノードのデータを変更せずに、新しいノードをこの CharacterData ノードの前に挿入することができます。
js
const h1TextNode = document.querySelector("h1").firstChild;
h1TextNode.before("h1# ");
h1TextNode.parentElement.childNodes;
// NodeList [#text "h1# ", #text "CharacterData.before()"]
h1TextNode.data;
// "CharacterData.before()"
仕様書
| Specification |
|---|
| DOM Standard # ref-for-dom-childnode-before① |
ブラウザーの互換性
BCD tables only load in the browser