CharacterData: before() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
before()
は CharacterData
インターフェイスのメソッドで、一連の Node
オブジェクトまたは文字列を、この CharacterData
の親ノードの子リストの中、この CharacterData
ノードの直前に挿入します。
構文
js
before(...nodes)
引数
例外
HierarchyRequestError
DOMException
-
階層内の指定された位置に新しいノードを挿入できない場合,つまり以下の条件のいずれかに該当する場合に発生します。
- 追加されたノードの 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