--- title: ChildNode slug: Web/API/ChildNode tags: - API - DOM - Experimental - Interface - NeedsTranslation - Node - TopicStub translation_of: Web/API/ChildNode ---
{{APIRef("DOM")}}

The ChildNode interface contains methods that are particular to {{domxref("Node")}} objects that can have a parent.

ChildNode is a raw interface and no object of this type can be created; it is implemented by {{domxref("Element")}}, {{domxref("DocumentType")}}, and {{domxref("CharacterData")}} objects.

Properties

There are neither inherited, nor specific properties.

Methods

There are no inherited methods.

{{domxref("ChildNode.remove()")}} {{experimental_inline}}
Removes this ChildNode from the children list of its parent.
{{domxref("ChildNode.before()")}} {{experimental_inline}}
Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this ChildNode's parent, just before this ChildNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.
{{domxref("ChildNode.after()")}} {{experimental_inline}}
Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this ChildNode's parent, just after this ChildNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.
{{domxref("ChildNode.replaceWith()")}} {{experimental_inline}}
Replaces this ChildNode in the children list of its parent with a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.

Specifications

Specification Status Comment
{{SpecName('DOM WHATWG', '#interface-childnode', 'ChildNode')}} {{Spec2('DOM WHATWG')}} Split the ElementTraversal interface in {{domxref("ParentNode")}} and ChildNode. previousElementSibling and nextElementSibling are now defined on the latter. The {{domxref("CharacterData")}} and {{domxref("DocumentType")}} implemented the new interfaces. Added the remove(), before(), after() and replaceWith() methods.
{{SpecName('Element Traversal', '#interface-elementTraversal', 'ElementTraversal')}} {{Spec2('Element Traversal')}} Added the initial definition of its properties to the ElementTraversal pure interface and use it on {{domxref("Element")}}.

Polyfill

External on github: childNode.js

Browser compatibility

{{Compat("api.ChildNode")}}

See also