--- title: ParentNode slug: Web/API/ParentNode tags: - API - DOM - NeedsTranslation - TopicStub translation_of: Web/API/ParentNode ---
The ParentNode interface contains methods that are particular to {{domxref("Node")}} objects that can have children.
ParentNode is a raw interface and no object of this type can be created; it is implemented by {{domxref("Element")}}, {{domxref("Document")}}, and {{domxref("DocumentFragment")}} objects.
ParentNode.ParentNode, or null if there is none.ParentNode, or null if there is none.unsigned long giving the amount of children that the object has.ParentNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.ParentNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.| Specification | Status | Comment |
|---|---|---|
| {{SpecName('DOM WHATWG', '#dom-parentnode-firstelementchild', 'ParentNode.firstElementChild')}} | {{Spec2('DOM WHATWG')}} | Splitted the ElementTraversal interface in {{domxref("ChildNode")}} and ParentNode. The firstElementChild, lastElementChild, and childElementCount properties are now defined on the latter.The {{domxref("Document")}} and {{domxref("DocumentFragment")}} implemented the new interfaces. Added the children property.Added the append() and prepend() 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")}}. |
{{CompatibilityTable}}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support (on {{domxref("Element")}}) | {{CompatChrome(1.0)}} | {{CompatGeckoDesktop("1.9.1")}} | 9.0 [1] | 10.0 | 4.0 |
| Support on {{domxref("Document")}} and {{domxref("DocumentFragment")}} {{experimental_inline}} | {{CompatChrome(29.0)}} | {{CompatGeckoDesktop(25)}} | {{CompatNo}} | 16.0 | {{CompatNo}} |
append() and prepend() {{experimental_inline}} |
{{CompatChrome(54.0)}} | {{CompatGeckoDesktop(49)}} | {{CompatVersionUnknown}} | {{CompatOpera(39)}} | {{CompatNo}} |
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Mobile |
|---|---|---|---|---|---|---|---|
| Basic support (on {{domxref("Element")}}) | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.9.1")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Support on {{domxref("Document")}} and {{domxref("DocumentFragment")}} {{experimental_inline}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile(25)}} | {{CompatNo}} | 16.0 | {{CompatNo}} | {{CompatVersionUnknown}} |
append() and prepend() {{experimental_inline}} |
{{CompatNo}} | {{CompatChrome(54.0)}} | {{CompatGeckoMobile(49)}} | {{CompatNo}} | {{CompatOperaMobile(39)}} | {{CompatNo}} | {{CompatChrome(54.0)}} |
[1] Internet Explorer 6, 7 and 8 supported it, but erroneously returns {{domxref("Comment")}} nodes as part of the results.