Calling insertBefore on Documents

 

If the current node is a document, calling insertBefore has the following results, depending on the value of the newChild parameter.

Node type passed in newChild Result
NODE_ATTRIBUTE, NODE_CDATA_SECTION, NODE_DOCUMENT, NODE_ENTITY, NODE_ENTITY_REFERENCE, NODE_NOTATION, NODE_TEXT Returns an error. These nodes are not valid as children of a document node.
NODE_COMMENT, NODE_PROCESSING_INSTRUCTION Inserts newChild and returns newChild.
NODE_ELEMENT Inserts newChild and returns newChild. By definition, an XML document (the Document node) can have only a single child. Therefore, an error is returned if the Document node already has a child.
NODE_DOCUMENT_FRAGMENT Inserts the children of the document fragment (in newChild) and returns newChild. The insert operations are subject to the rules for child nodes and can fail if the document fragment children represent node types that cannot be inserted.
NODE_DOCUMENT_TYPE Returns an error. The document type is read-only.