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 July 2015.
The before()
method of the CharacterData
interface
inserts a set of Node
objects and strings
in the children list of the CharacterData
's parent, just before the CharacterData
node.
Strings are inserted as Text
nodes; the string is being passed as argument to the Text()
constructor.
Syntax
js
before(...nodes)
Parameters
Exceptions
HierarchyRequestError
DOMException
-
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
CharacterData
node. - If one of the added node is not a
DocumentFragment
, aDocumentType
, anElement
, or aCharacterData
. - If this
CharacterData
node is actually aText
node, and its parent is aDocument
. - If the parent of this
CharacterData
node is aDocument
and one of the nodes to insert is aDocumentFragment
with more than oneElement
child, or that has aText
child.
- 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 Standard # ref-for-dom-childnode-before① |
Browser compatibility
BCD tables only load in the browser