CharacterData: before() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
The before() method of the CharacterData interface inserts a set of Node objects or strings in the children list of this CharacterData's parent, just before this CharacterData. Strings are inserted as equivalent Text nodes. Nothing happens if parentNode is null.
Syntax
js
before(param1)
before(param1, param2)
before(param1, param2, /* …, */ paramN)
Parameters
param1, …,paramN-
A set of
Nodeobjects or strings to insert.
Return value
None (undefined).
Exceptions
HierarchyRequestErrorDOMException-
Thrown when the new nodes cannot be inserted at the specified point in the hierarchy, that is if one of the following conditions is met:
- If the insertion of one of the added node would lead to a cycle, that is if one of them is an ancestor of this
CharacterDatanode. - If one of the added node is not a
DocumentFragment, aDocumentType, anElement, or aCharacterData. - If this
CharacterDatanode is actually aTextnode, and its parent is aDocument. - If the parent of this
CharacterDatanode is aDocumentand one of the nodes to insert is aDocumentFragmentwith more than oneElementchild, or that has aTextchild.
- If the insertion of one of the added node would lead to a cycle, that is if one of them is an ancestor of this
Examples
The before() method allows you to insert new nodes before a
CharacterData node leaving the current node's data unchanged.
js
const h1TextNode = document.querySelector("h1").firstChild;
h1TextNode.before("h1# ");
h1TextNode.parentElement.childNodes;
// NodeList [#text "h1# ", #text "CharacterData.before()"]
h1TextNode.data;
// "CharacterData.before()"
Specifications
| Specification |
|---|
| DOM> # ref-for-dom-childnode-before①> |