aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/parentnode
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/api/parentnode
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/ru/web/api/parentnode')
-rw-r--r--files/ru/web/api/parentnode/append/index.html134
-rw-r--r--files/ru/web/api/parentnode/childelementcount/index.html122
-rw-r--r--files/ru/web/api/parentnode/children/index.html143
-rw-r--r--files/ru/web/api/parentnode/firstelementchild/index.html149
-rw-r--r--files/ru/web/api/parentnode/index.html94
-rw-r--r--files/ru/web/api/parentnode/lastelementchild/index.html161
-rw-r--r--files/ru/web/api/parentnode/prepend/index.html133
7 files changed, 936 insertions, 0 deletions
diff --git a/files/ru/web/api/parentnode/append/index.html b/files/ru/web/api/parentnode/append/index.html
new file mode 100644
index 0000000000..02d0995fc4
--- /dev/null
+++ b/files/ru/web/api/parentnode/append/index.html
@@ -0,0 +1,134 @@
+---
+title: ParentNode.append()
+slug: Web/API/ParentNode/append
+translation_of: Web/API/ParentNode/append
+---
+<div>{{APIRef("DOM")}} {{SeeCompatTable}}</div>
+
+<p>Метод <strong><code>ParentNode.append</code></strong> добавляет набор объектов {{domxref("Node")}} или {{domxref("DOMString")}} в конец (после последнего потомка) <code>ParentNode</code>. {{domxref("DOMString")}} объекты добавляются как {{domxref("Text")}}.</p>
+
+<p>Отличия от {{domxref("Node.appendChild()")}}:</p>
+
+<ul>
+ <li><code>ParentNode.append()</code> позволяет добавлять {{domxref("DOMString")}} объекты, в то время как <code>Node.appendChild()</code> принимает только {{domxref("Node")}}.</li>
+ <li><code>ParentNode.append()</code> ничего не возвращает, в то время как <code>Node.appendChild()</code> возвращает добавленный объект {{domxref("Node")}}.</li>
+ <li><code>ParentNode.append()</code> позволяет добавить несколько узлов (node) или строк, в то время как <code>Node.appendChild()</code> может добавть только один узел (node).</li>
+</ul>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">[Throws, Unscopable]
+void ParentNode.append((Node или DOMString)... nodes);
+</pre>
+
+<h3 id="Параметры">Параметры</h3>
+
+<dl>
+ <dt><code>nodes</code></dt>
+ <dd>Набор объектов {{domxref("Node")}} или {{domxref("DOMString")}}, которые будут добавлены.</dd>
+</dl>
+
+<h3 id="Исключения">Исключения</h3>
+
+<ul>
+ <li>{{domxref("HierarchyRequestError")}}: Узел (node) не может быть вставлен в определённую точку в иерархии страницы.</li>
+</ul>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Добавление_элемента">Добавление элемента</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.append(p);
+
+console.log(parent.childNodes); // NodeList [ &lt;p&gt; ]
+</pre>
+
+<h3 id="Добавление_строки">Добавление строки</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+parent.append("Любой текст");
+
+console.log(parent.textContent); // "Любой текст"</pre>
+
+<h3 id="Добавление_элемента_или_строки">Добавление элемента или строки</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.append("Любой текст", p);
+
+console.log(parent.childNodes); // NodeList [ #text "Любой текст", &lt;p&gt; ]</pre>
+
+<h3 id="ParentNode.append_не_имеет_области_видимости"><code>ParentNode.append()</code> не имеет области видимости</h3>
+
+<p>Метод <code>append()</code> не имеет области видимости с директивой <code>with</code>. Больше информации в {{jsxref("Symbol.unscopables")}}.</p>
+
+<pre class="brush: js">var parent = document.createElement("div");
+
+with(parent) {
+ append("foo");
+}
+// ReferenceError: append is not defined </pre>
+
+<h2 id="Полифил">Полифил</h2>
+
+<p>Вы можете использовать полифил для <code>метода append()</code> в Internet Explorer 9 и выше:</p>
+
+<pre class="brush: js">// Источник: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
+(function (arr) {
+ arr.forEach(function (item) {
+ if (item.hasOwnProperty('append')) {
+ return;
+ }
+ Object.defineProperty(item, 'append', {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: function append() {
+ var argArr = Array.prototype.slice.call(arguments),
+ docFrag = document.createDocumentFragment();
+
+ argArr.forEach(function (argItem) {
+ var isNode = argItem instanceof Node;
+ docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
+ });
+
+ this.appendChild(docFrag);
+ }
+ });
+ });
+})([Element.prototype, Document.prototype, DocumentFragment.prototype]);</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-parentnode-append', 'ParentNode.append()')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+
+
+<p>{{Compat("api.ParentNode.append")}}</p>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li>{{domxref("ParentNode")}} и {{domxref("ChildNode")}}</li>
+ <li>{{domxref("ParentNode.prepend()")}}</li>
+ <li>{{domxref("Node.appendChild()")}}</li>
+ <li>{{domxref("ChildNode.after()")}}</li>
+ <li>{{domxref("NodeList")}}</li>
+</ul>
diff --git a/files/ru/web/api/parentnode/childelementcount/index.html b/files/ru/web/api/parentnode/childelementcount/index.html
new file mode 100644
index 0000000000..6dcc3711dd
--- /dev/null
+++ b/files/ru/web/api/parentnode/childelementcount/index.html
@@ -0,0 +1,122 @@
+---
+title: Node.childElementCount
+slug: Web/API/ParentNode/childElementCount
+tags:
+ - API
+ - DOM
+ - ParentNode
+ - Property
+ - Reference
+translation_of: Web/API/ParentNode/childElementCount
+---
+<div>
+<p>{{ APIRef("DOM") }}</p>
+
+<p>Свойство<code><strong> Node.childElementCount</strong></code> предназначено только для чтения и возвращает число дочерних<u> элементов</u> узла.</p>
+</div>
+
+<h2 id="Syntax" name="Syntax">Синтакисис</h2>
+
+<pre class="syntaxbox">var <var>elCount</var> = Node.childElementCount;
+</pre>
+
+<ul>
+ <li><code><strong>elCount</strong></code> - целое число, количество дочерних элементов узла <strong>Node.</strong></li>
+ <li><code><strong>Node</strong></code> - объект, представляющий собой <code>Document</code>, <code>DocumentFragment</code> или <code>Element</code>.</li>
+</ul>
+
+<div class="warning">
+<p>А наш добрый друг<strong> Internet Explorer </strong>в <strong>6, 7</strong> и <strong>8</strong> версиях ошибочно считает элементами комментарии в HTML-коде ({{domxref("Comment")}}).</p>
+</div>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush:js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> foo <span class="operator token">=</span> document<span class="punctuation token">.</span><span class="function token">getElementById</span><span class="punctuation token">(</span><span class="string token">"foo"</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="keyword token">if</span> <span class="punctuation token">(</span>foo<span class="punctuation token">.</span>childElementCount <span class="operator token">&gt;</span> <span class="number token">0</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="comment token">// здесь нужный код..</span>
+<span class="punctuation token">}</span></code></pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-parentnode-childElementCount', 'ParentNode.childElementCount')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#attribute-childElementCount', 'ElementTraversal.childElementCount')}}</td>
+ <td>{{Spec2('Element Traversal')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка {{domxref("Element")}}</td>
+ <td>1.0</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9.0 [1]</td>
+ <td>10.0</td>
+ <td>4.0</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка {{domxref("Element")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
diff --git a/files/ru/web/api/parentnode/children/index.html b/files/ru/web/api/parentnode/children/index.html
new file mode 100644
index 0000000000..e810a39465
--- /dev/null
+++ b/files/ru/web/api/parentnode/children/index.html
@@ -0,0 +1,143 @@
+---
+title: Node.children
+slug: Web/API/ParentNode/children
+tags:
+ - API
+ - DOM
+ - ParentNode
+ - Property
+ - Reference
+translation_of: Web/API/ParentNode/children
+---
+<p>{{ APIRef("DOM") }}</p>
+
+<h2 id="Описание">Описание</h2>
+
+<p>Свойство <span class="seoSummary"><code><strong>children</strong></code> </span> {{domxref("ParentNode")}} является свойством только для чтения, которое возвращает {{domxref("HTMLCollection")}}, содержащее все дочерние {{domxref("Element", "elements")}} узла, на котором он был вызван.</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">var <em>elList</em> = elementNodeReference.children; </pre>
+
+<p><var>В результате,</var><code><var> <strong>elList</strong> - </var></code><var>живая коллекция, состоящая из дочерних элементов узла</var><code><var> <strong>elementNodeReference</strong></var></code>, и стоит подметить, что если у узла детей нет, она будет пустой. Определить это можно, обратившись к свойству length, которое содержит в себе количество элементов в коллекции.</p>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush: js">&lt;ul&gt;
+ &lt;li&gt;1 пункт&lt;/li&gt;
+ &lt;li&gt;2 пункт&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;script type="text/javascript"&gt;
+
+ var elementChildrens = document.querySelector("ul").children;
+ for (var i=0, child; child=elementChildrens[i]; i++) {
+ //elementChildrens - коллеция детей списка
+ //child - последовательно, каждый из элементов elementChildrens
+ alert(child.innerHTML);
+ }
+
+&lt;/script&gt;
+
+</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-parentnode-children', 'ParentNode.children')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Начальное определение.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка {{domxref("Element")}}</td>
+ <td>1.0</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9.0 [1]</td>
+ <td>10.0</td>
+ <td>4.0</td>
+ </tr>
+ <tr>
+ <td>
+ <p>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</p>
+ </td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("SVGElement")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка {{domxref("Element")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>Internet Explorer 6, 7 и 8 поддерживают данное свойство, но ошибочно включают в коллекцию комментарии ({{domxref("Comment")}}) в HTML-коде.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>Свойства {{domxref("ParentNode")}} и {{domxref("ChildNode")}}.</li>
+</ul>
diff --git a/files/ru/web/api/parentnode/firstelementchild/index.html b/files/ru/web/api/parentnode/firstelementchild/index.html
new file mode 100644
index 0000000000..472732452a
--- /dev/null
+++ b/files/ru/web/api/parentnode/firstelementchild/index.html
@@ -0,0 +1,149 @@
+---
+title: ParentNode.firstElementChild
+slug: Web/API/ParentNode/firstElementChild
+tags:
+ - API
+ - DOM
+ - ParentNode
+ - Property
+ - Reference
+translation_of: Web/API/ParentNode/firstElementChild
+---
+<p>{{ APIRef("DOM") }}</p>
+
+<p>Доступное только для чтения свойство <strong><code>ParentNode.firstElementChild</code></strong> возвращает первый дочерный элемент объекта ({{domxref("Element")}}) или <code>null</code> если дочерних элементов нет.</p>
+
+<div class="note">
+<p>This property was initially defined in the {{domxref("ElementTraversal")}} pure interface. As this interface contained two distinct set of properties, one aimed at {{domxref("Node")}} that have children, one at those that are children, they have been moved into two separate pure interfaces, {{domxref("ParentNode")}} and {{domxref("ChildNode")}}. In this case, <code>firstElementChild</code> moved to {{domxref("ParentNode")}}. This is a fairly technical change that shouldn't affect compatibility.</p>
+</div>
+
+<h2 id="Syntax_and_values" name="Syntax_and_values">Синтаксис</h2>
+
+<pre class="syntaxbox">var <em>childNode</em> = elementNodeReference.firstElementChild;
+</pre>
+
+<h2 id="Example" name="Example">Пример</h2>
+
+<pre class="brush: html">&lt;p id="para-01"&gt;
+ &lt;span&gt;First span&lt;/span&gt;
+&lt;/p&gt;
+
+&lt;script type="text/javascript"&gt;
+ var p01 = document.getElementById('para-01');
+ alert(p01.firstElementChild.nodeName)
+&lt;/script&gt;</pre>
+
+<p>В этом примере alert показывает 'span', что является именем тега первого дочернего узла элемента p.</p>
+
+<h2 id="Polyfill_для_Internet_Explorer_8">Polyfill для Internet Explorer 8</h2>
+
+<p>Это свойство не поддерживается браузером Internet Explorer вплоть до 9 версии, поэтому следующий сниппет может быть использован для добавления поддержки IE8:</p>
+
+<pre class="brush: js">// Source: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
+if(!("firstElementChild" in document.documentElement)){
+    Object.defineProperty(Element.prototype, "firstElementChild", {
+        get: function(){
+            for(var nodes = this.children, n, i = 0, l = nodes.length; i &lt; l; ++i)
+                if(n = nodes[i], 1 === n.nodeType) return n;
+            return null;
+        }
+    });
+}</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-parentnode-firstelementchild', 'ParentNode.firstElementChild')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Splitted the <code>ElementTraversal</code> interface in {{domxref("ChildNode")}} and <code>ParentNode</code>. This method is now defined on the latter.<br>
+ The {{domxref("Document")}} and {{domxref("DocumentFragment")}} implemented the new interfaces.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#attribute-firstElementChild', 'ElementTraversal.firstElementChild')}}</td>
+ <td>{{Spec2('Element Traversal')}}</td>
+ <td>Added its initial definition to the <code>ElementTraversal</code> pure interface and use it on {{domxref("Element")}}.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка ({{domxref("Element")}})</td>
+ <td>1.0</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9.0</td>
+ <td>10.0</td>
+ <td>4.0</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка ({{domxref("Element")}})</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("Document")}} и {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{domxref("ParentNode")}} и {{domxref("ChildNode")}}.</li>
+ <li>
+ <div class="syntaxbox">Типы объектов, имплементирующие данное свойство: {{domxref("Document")}}, {{domxref("Element")}}, и {{domxref("DocumentFragment")}}.</div>
+ </li>
+</ul>
diff --git a/files/ru/web/api/parentnode/index.html b/files/ru/web/api/parentnode/index.html
new file mode 100644
index 0000000000..33f9ee9ddb
--- /dev/null
+++ b/files/ru/web/api/parentnode/index.html
@@ -0,0 +1,94 @@
+---
+title: ParentNode
+slug: Web/API/ParentNode
+tags:
+ - API
+ - DOM
+ - NeedsTranslation
+ - Tab
+ - TopicStub
+translation_of: Web/API/ParentNode
+---
+<p>{{ APIRef("DOM") }}</p>
+
+<p>Интерфейс <code><strong>ParentNode</strong></code> содержит методы, которые относятся к {{domxref("Node")}} объектам , у которых могут быть потомки.</p>
+
+<p><code>ParentNode</code> является сырым интерфейсом и объекты с данным типом создать нельзя; данный интерфейс имеется у {{domxref("Element")}}, {{domxref("Document")}}, и {{domxref("DocumentFragment")}} объектов.</p>
+
+<h2 id="Свойства">Свойства</h2>
+
+<dl>
+ <dt>{{domxref("ParentNode.children")}} {{experimental_inline}} {{readonlyInline}}<br>
+ Возвращает живую  {{domxref("HTMLCollection")}}, которая содержит все объекты типа {{domxref("Element")}}, которые являются потомками данного ParentNode.<br>
+ <br>
+ {{domxref("ParentNode.firstElementChild")}} {{experimental_inline}} {{readonlyInline}}<br>
+ Возвращает {{domxref("Element")}} , который является первым потомком данного ParentNode, или null, если таковой отсутствует.<br>
+ <br>
+ {{ domxref("ParentNode.lastElementChild") }} {{experimental_inline}} {{readonlyInline}}<br>
+ Возвращает {{domxref("Element")}}, который является последним из потомков данного ParentNode, или null, если таковой отсутствует.<br>
+ <br>
+ {{ domxref("ParentNode.childElementCount") }} {{experimental_inline}} {{readonlyInline}}<br>
+ Возвращает unsigned long с количеством потомков, которые есть у объекта.</dt>
+</dl>
+
+<h2 id="Методы">Методы</h2>
+
+<dl>
+ <dt>{{domxref("ParentNode.append()")}} {{experimental_inline}}</dt>
+ <dd>Вставляет набор объектов типа {{domxref("Node")}} или {{domxref("DOMString")}} после последнего потомка <code>ParentNode</code>. {{domxref("DOMString")}} объекты вставлены как эквивалент {{domxref("Text")}} узлы.</dd>
+ <dt>{{domxref("ParentNode.prepend()")}} {{experimental_inline}}</dt>
+ <dd>Вставляет набор объектов типа {{domxref("Node")}} или {{domxref("DOMString")}} перед первым потомком <code>ParentNode</code>. {{domxref("DOMString")}} объекты вставлены как эквивалент {{domxref("Text")}} узлы.</dd>
+ <dt>{{domxref("ParentNode.querySelector()")}}</dt>
+ <dd>Возвращает первый {{domxref("Element")}} с текущим элементом в качестве источника, который совпадает с определённой группой селекторов.</dd>
+ <dt>{{domxref("ParentNode.querySelectorAll()")}}</dt>
+ <dd>Возвращает {{domxref("NodeList")}}, который представляет собой список элементов с текущим элементом в качестве источника, который совпадает с определённой группой селекторов.</dd>
+</dl>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#parentnode', 'ParentNode')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Добавлены методы <code>append()</code> и <code>prepend()</code>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-parentnode-firstelementchild', 'ParentNode.firstElementChild')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Splitted the <code>ElementTraversal</code> interface in {{domxref("ChildNode")}} and <code>ParentNode</code>. The <code>firstElementChild</code>, <code>lastElementChild</code>, and <code>childElementCount</code> properties are now defined on the latter.<br>
+ The {{domxref("Document")}} and {{domxref("DocumentFragment")}} implemented the new interfaces.<br>
+ Added the <code>children</code> property.<br>
+ Added the <code>append()</code> and <code>prepend()</code> methods.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#interface-elementTraversal', 'ElementTraversal')}}'</td>
+ <td>{{Spec2('Element Traversal')}}</td>
+ <td>Добавлено изначальное определение свойств в <code>ElementTraversal</code> чистый интерфейс и использование его в {{domxref("Element")}}.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<div class="hidden">
+<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+</div>
+
+<p>{{Compat("api.ParentNode")}}</p>
+
+<p> </p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>Чистый интерфейс {{domxref("ChildNode")}}.</li>
+ <li>
+ <div class="syntaxbox">Типы объектов, которые имплементируют данный интерфейс: {{domxref("Document")}}, {{domxref("Element")}}, and {{domxref("DocumentFragment")}}.</div>
+ </li>
+</ul>
diff --git a/files/ru/web/api/parentnode/lastelementchild/index.html b/files/ru/web/api/parentnode/lastelementchild/index.html
new file mode 100644
index 0000000000..d625dc316f
--- /dev/null
+++ b/files/ru/web/api/parentnode/lastelementchild/index.html
@@ -0,0 +1,161 @@
+---
+title: ParentNode.lastElementChild
+slug: Web/API/ParentNode/lastElementChild
+tags:
+ - API
+ - DOM
+ - ParentNode
+ - Property
+ - Reference
+translation_of: Web/API/ParentNode/lastElementChild
+---
+<p>{{ APIRef("DOM") }}</p>
+
+<p><code><strong>Свойство ParentNode.lastElementChild</strong></code> только для чтения. Возвращает последний дочерний элемент объекта или <code>null</code> если нет дочерних элементов.</p>
+
+<div class="note">
+<p>This property was initially defined in the {{domxref("ElementTraversal")}} pure interface. As this interface contained two distinct set of properties, one aimed at {{domxref("Node")}} that have children, one at those that are children, they have been moved into two separate pure interfaces, {{domxref("ParentNode")}} and {{domxref("ChildNode")}}. In this case, <code>lastElementChild</code> moved to {{domxref("ParentNode")}}. This is a fairly technical change that shouldn't affect compatibility.</p>
+</div>
+
+<h2 id="Syntax_and_values" name="Syntax_and_values">Синтаксис</h2>
+
+<pre class="syntaxbox">var <em>element</em> = node.lastElementChild; </pre>
+
+<h2 id="Example" name="Example">Пример</h2>
+
+<pre class="brush: html">&lt;ul id="foo"&gt;
+ &lt;li&gt;First (1)&lt;/li&gt;
+ &lt;li&gt;Second (2)&lt;/li&gt;
+ &lt;li&gt;Third (3)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;script&gt;
+var foo = document.getElementById('foo');
+// yields: Third (3)
+console.log(foo.lastElementChild.textContent);
+&lt;/script&gt;
+</pre>
+
+<h2 id="Polyfill_for_IE8_IE9_and_Safari">Polyfill for IE8, IE9 and Safari</h2>
+
+<pre class="brush: js">// Overwrites native 'lastElementChild' prototype.
+// Adds Document &amp; DocumentFragment support for IE9 &amp; Safari.
+// Returns array instead of HTMLCollection.
+;(function(constructor) {
+ if (constructor &amp;&amp;
+ constructor.prototype &amp;&amp;
+ constructor.prototype.lastElementChild == null) {
+ Object.defineProperty(constructor.prototype, 'lastElementChild', {
+ get: function() {
+ var node, nodes = this.childNodes, i = nodes.length - 1;
+ while (node = nodes[i--]) {
+ if (node.nodeType === 1) {
+ return node;
+ }
+ }
+ return null;
+ }
+ });
+ }
+})(window.Node || window.Element);
+</pre>
+
+<h2 id="Спецификация">Спецификация</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', '#dom-parentnode-lastelementchild', 'ParentNode.lastElementChild')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Splitted the <code>ElementTraversal</code> interface in {{domxref("ChildNode")}} and <code>ParentNode</code>. This method is now defined on the latter.<br>
+ The {{domxref("Document")}} and {{domxref("DocumentFragment")}} implemented the new interfaces.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#attribute-lastElementChild', 'ElementTraversal.lastElementChild')}}</td>
+ <td>{{Spec2('Element Traversal')}}</td>
+ <td>Added its initial definition to the <code>ElementTraversal</code> pure interface and use it on {{domxref("Element")}}.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Basic support (on {{domxref("Element")}})</td>
+ <td>1.0</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9.0</td>
+ <td>10.0</td>
+ <td>4.0</td>
+ </tr>
+ <tr>
+ <td>Support on {{domxref("Document")}} and {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support (on {{domxref("Element")}})</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ <tr>
+ <td>Support on {{domxref("Document")}} and {{domxref("DocumentFragment")}} {{experimental_inline}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+
+
+<h2 id="Так_же_смотрите">Так же смотрите</h2>
+
+<ul>
+ <li>The {{domxref("ParentNode")}} and {{domxref("ChildNode")}} pure interfaces.</li>
+ <li>
+ <div class="syntaxbox">Object types implementing this pure interface: {{domxref("Document")}}, {{domxref("Element")}}, and {{domxref("DocumentFragment")}}.</div>
+ </li>
+</ul>
diff --git a/files/ru/web/api/parentnode/prepend/index.html b/files/ru/web/api/parentnode/prepend/index.html
new file mode 100644
index 0000000000..709a620f85
--- /dev/null
+++ b/files/ru/web/api/parentnode/prepend/index.html
@@ -0,0 +1,133 @@
+---
+title: ParentNode.prepend()
+slug: Web/API/ParentNode/prepend
+translation_of: Web/API/ParentNode/prepend
+---
+<div>{{APIRef("DOM")}}</div>
+
+<p>Метод <strong><code>ParentNode.prepend()</code></strong> вставляет множество объектов {{domxref("Node")}} или {{domxref("DOMString")}} в начало (перед первым потомком) {{domxref("ParentNode")}}. Объекты {{domxref("DOMString")}} вставляются как {{domxref("Text")}}.</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><em>ParentNode</em>.prepend(<em>...nodesToPrepend</em>);
+</pre>
+
+<h3 id="Параметры">Параметры</h3>
+
+<dl>
+ <dt><code>nodesToPrepend</code></dt>
+ <dd>Один или болле узлов, которые вставляются перед первым дочерним узлом в  <code>ParentNode</code>. Каждый узел может быть определен либо как {{domxref("Node")}} - объект, либо как строка; строки вставляются как новые узлы типа {{domxref("Text")}}.</dd>
+</dl>
+
+<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
+
+<p><code>undefined</code>.</p>
+
+<h3 id="Исключения">Исключения</h3>
+
+<ul>
+ <li>{{domxref("HierarchyRequestError")}}: Узел не может быть вставлен в указанную позицию данной иерархии.</li>
+</ul>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Добавление_элемента_в_начало">Добавление элемента в начало</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+var p = document.createElement("p");
+var span = document.createElement("span");
+parent.append(p);
+parent.prepend(span);
+
+console.log(parent.childNodes); // NodeList [ &lt;span&gt;, &lt;p&gt; ]
+</pre>
+
+<h3 id="Добавление_текста_в_начало">Добавление текста в начало</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+parent.append("Some text");
+parent.prepend("Headline: ");
+
+console.log(parent.textContent); // "Headline: Some text"</pre>
+
+<h3 id="Добавление_элемента_и_текста">Добавление элемента и текста</h3>
+
+<pre class="brush: js">var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.prepend("Some text", p);
+
+console.log(parent.childNodes); // NodeList [ #text "Some text", &lt;p&gt; ]</pre>
+
+<h3 id="ParentNode.prepend_не_имеет_области_видимости"><code>ParentNode.prepend()</code> не имеет области видимости</h3>
+
+<p>Метод <code>prepend()</code> не входит в область видимости оператора <code>with</code>. Смотрите {{jsxref("Symbol.unscopables")}} для детальной информации.</p>
+
+<pre class="brush: js">var parent = document.createElement("div");
+
+with(parent) {
+ prepend("foo");
+}
+// ReferenceError: prepend is not defined </pre>
+
+<h2 id="Полифил">Полифил</h2>
+
+<p>Вы можете использовать полифил, если метод <code>prepend()</code> не доступный:</p>
+
+<pre class="brush: js">// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md
+(function (arr) {
+ arr.forEach(function (item) {
+ if (item.hasOwnProperty('prepend')) {
+ return;
+ }
+ Object.defineProperty(item, 'prepend', {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: function prepend() {
+ var argArr = Array.prototype.slice.call(arguments),
+ docFrag = document.createDocumentFragment();
+
+ argArr.forEach(function (argItem) {
+ var isNode = argItem instanceof Node;
+ docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
+ });
+
+ this.insertBefore(docFrag, this.firstChild);
+ }
+ });
+ });
+})([Element.prototype, Document.prototype, DocumentFragment.prototype]);</pre>
+
+<h2 id="Спецификация">Спецификация</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', '#dom-parentnode-prepend', 'ParentNode.prepend()')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+
+
+<p>{{Compat("api.ParentNode.prepend")}}</p>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li>{{domxref("ParentNode")}} and {{domxref("ChildNode")}}</li>
+ <li>{{domxref("ParentNode.append()")}}</li>
+ <li>{{domxref("Node.appendChild()")}}</li>
+ <li>{{domxref("Node.insertBefore()")}}</li>
+ <li>{{domxref("ChildNode.before()")}}</li>
+ <li>{{domxref("NodeList")}}</li>
+</ul>