files/en-us/web/api/document/prepend/index.md
{{APIRef("DOM")}}
The Document.prepend() method
inserts a set of {{domxref("Node")}} objects or strings before
the first child of the document. Strings
are inserted as equivalent {{domxref("Text")}} nodes.
This method prepends a child to a Document. To prepend to an arbitrary element in the tree, see {{domxref("Element.prepend()")}}.
prepend(param1)
prepend(param1, param2)
prepend(param1, param2, /* …, */ paramN)
param1, …, paramN
None ({{jsxref("undefined")}}).
HierarchyRequestError {{DOMxRef("DOMException")}}
If you try to prepend an element to an existing HTML document,
it might throw a HierarchyRequestError {{domxref("DOMException")}} given a {{HTMLElement("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>]
{{Specifications}}
{{Compat}}