Calling insertBefore on Elements

 

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

Node type passed in newChild

Result

             NODE_CDATA_SECTION, NODE_COMMENT, NODE_ELEMENT, NODE_ENTITY_REFERENCE, NODE_TEXT, NODE_PROCESSING_INSTRUCTION

Inserts newChild and returns newChild.

             NODE_ATTRIBUTE, NODE_DOCUMENT, NODE_DOCUMENT_TYPE, NODE_ENTITY, NODE_NOTATION

Returns an error. These node types cannot be children of an element node.

             NODE_DOCUMENT_FRAGMENT           

Inserts the children of the document fragment (newChild) and returns newChild.

             NODE_ENTITY_REFERENCE           

Returns an error. Although the child nodes of an entity reference are the expanded entity, the children cannot be modified.

When elements are added as children to other elements, they introduce their own namespace scoping. That is, if the element is from a default namespace, the default has scope beginning with the element being added.

If an entity reference is being added as a child to an element or document fragment, the namespace declaration of the entity reference is added to the containing element.

Show: