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.
Thebefore() method of theCharacterData interfaceinserts a set ofNode objects and stringsin the children list of theCharacterData's parent, just before theCharacterData node.
Strings are inserted asText nodes; the string is being passed as argument to theText() constructor.
In this article
Syntax
js
before(...nodes)Parameters
Return value
None (undefined).
Exceptions
HierarchyRequestErrorDOMExceptionThrown 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
Thebefore() method allows you to insert new nodes before aCharacterData 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①> |