1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
---
title: ChildNode
slug: Web/API/ChildNode
tags:
- API
- DOM
- Experimental
- Interface
- NeedsTranslation
- Node
- TopicStub
translation_of: Web/API/ChildNode
---
<div>{{APIRef("DOM")}}</div>
<p>The <code><strong>ChildNode</strong></code> interface contains methods that are particular to {{domxref("Node")}} objects that can have a parent.</p>
<p><code>ChildNode</code> 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.</p>
<h2 id="Properties">Properties</h2>
<p><em>There are neither inherited, nor specific properties.</em></p>
<h2 id="Methods">Methods</h2>
<p><em>There are no inherited methods.</em></p>
<dl>
<dt>{{domxref("ChildNode.remove()")}} {{experimental_inline}}</dt>
<dd>Removes this <code>ChildNode</code> from the children list of its parent.</dd>
<dt>{{domxref("ChildNode.before()")}} {{experimental_inline}}</dt>
<dd>Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this <code>ChildNode</code>'s parent, just before this <code>ChildNode</code>. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.</dd>
<dt>{{domxref("ChildNode.after()")}} {{experimental_inline}}</dt>
<dd>Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this <code>ChildNode</code>'s parent, just after this <code>ChildNode</code>. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.</dd>
<dt>{{domxref("ChildNode.replaceWith()")}} {{experimental_inline}}</dt>
<dd>Replaces this <code>ChildNode</code> 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.</dd>
</dl>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('DOM WHATWG', '#interface-childnode', 'ChildNode')}}</td>
<td>{{Spec2('DOM WHATWG')}}</td>
<td>Split the <code>ElementTraversal</code> interface in {{domxref("ParentNode")}} and <code>ChildNode</code>. <code>previousElementSibling</code> and <code>nextElementSibling</code> are now defined on the latter. The {{domxref("CharacterData")}} and {{domxref("DocumentType")}} implemented the new interfaces. Added the <code>remove()</code>, <code>before()</code>, <code>after()</code> and <code>replaceWith()</code> methods.</td>
</tr>
<tr>
<td>{{SpecName('Element Traversal', '#interface-elementTraversal', 'ElementTraversal')}}</td>
<td>{{Spec2('Element Traversal')}}</td>
<td>Added the initial definition of its properties to the <code>ElementTraversal</code> pure interface and use it on {{domxref("Element")}}.</td>
</tr>
</tbody>
</table>
<h2 id="Polyfill">Polyfill</h2>
<p>External on github: <a href="https://github.com/seznam/JAK/blob/master/lib/polyfills/childNode.js">childNode.js</a></p>
<h2 id="Browser_compatibility">Browser compatibility</h2>
<p>{{Compat("api.ChildNode")}}</p>
<h2 id="See_also">See also</h2>
<ul>
<li>The {{domxref("ParentNode")}} pure interface.</li>
<li>
<div class="syntaxbox">Object types implementing this pure interface: {{domxref("CharacterData")}}, {{domxref("Element")}}, and {{domxref("DocumentType")}}.</div>
</li>
</ul>
|