This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
The Document.prepend() method inserts a set of Node objects or strings before the first child of the document. Strings are inserted as equivalent Text nodes.
This method prepends a child to a Document. To prepend to an arbitrary element in the tree, see Element.prepend().
prepend(param1) prepend(param1, param2) prepend(param1, param2, /* …, */ paramN)
param1, …, paramNA set of Node objects or strings to insert.
None (undefined).
HierarchyRequestError DOMException
Thrown when the node cannot be inserted at the specified point in the hierarchy.
If you try to prepend an element to an existing HTML document, it might throw a HierarchyRequestError DOMException given a <html> element already exists.
let html = document.createElement("html");
document.prepend(html);
// HierarchyRequestError: The operation would yield an incorrect node tree.
If you are creating a new document without any existing element, you can prepend a root HTML element (or a root SVG element):
let doc = new Document();
let html = document.createElement("html");
doc.prepend(html);
doc.children; // HTMLCollection [<html>]
| Specification |
|---|
| DOM> # ref-for-dom-parentnode-prepend①> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
prepend |
54 | 17 | 49 | 41 | 10 | 54 | 49 | 41 | 10 | 6.0 | 54 | 10 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document/prepend