diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/api/childnode | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/web/api/childnode')
-rw-r--r-- | files/ru/web/api/childnode/index.html | 171 | ||||
-rw-r--r-- | files/ru/web/api/childnode/remove/index.html | 148 | ||||
-rw-r--r-- | files/ru/web/api/childnode/replacewith/index.html | 113 |
3 files changed, 432 insertions, 0 deletions
diff --git a/files/ru/web/api/childnode/index.html b/files/ru/web/api/childnode/index.html new file mode 100644 index 0000000000..0d1ebf46ec --- /dev/null +++ b/files/ru/web/api/childnode/index.html @@ -0,0 +1,171 @@ +--- +title: ChildNode +slug: Web/API/ChildNode +tags: + - API + - DOM + - Experimental + - Expérimental(2) + - NeedsTranslation + - TopicStub +translation_of: Web/API/ChildNode +--- +<p>{{APIRef("DOM")}}</p> + +<p>Интерфейс <code><strong>ChildNode</strong></code> содержит методы, специфичные для объектов {{domxref("Node")}}, которые имеют родителя.</p> + +<p><code>ChildNode</code> это просто интерфейс и ни один объект этого типа не может быть создан; он реализуется объектами {{domxref("Element")}}, {{domxref("DocumentType")}} и {{domxref("CharacterData")}}.</p> + +<h2 id="Properties">Properties</h2> + +<p><em>There is neither inherited, nor specific property.</em></p> + +<h2 id="Methods">Methods</h2> + +<p><em>Отсутствуют унаследованные методы.</em></p> + +<dl> + <dt>{{domxref("ChildNode.remove()")}} {{experimental_inline}}</dt> + <dd>Удаляет данный <code>ChildNode</code> из списка потомков его родителя.</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>Заменяет <code>ChildNode</code> в списке потомков его родителя набором {{domxref("Node")}} или {{domxref("DOMString")}} объектов. {{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>Интерфейс <code>ElementTraversal</code> разделен на {{domxref("ParentNode")}} и <code>ChildNode</code>. Свойства <code>previousElementSibling</code> и <code>nextElementSibling</code> теперь определены в последнем.<br> + The {{domxref("CharacterData")}} and {{domxref("DocumentType")}} implemented the new interfaces.<br> + Добавлены методы <code>remove()</code>, <code>before()</code>, <code>after()</code> и <code>replaceWith()</code>.</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>{{ 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("23.0")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>4.0</td> + </tr> + <tr> + <td>Support on {{domxref("DocumentType")}} and {{domxref("CharacterData")}} {{experimental_inline}}</td> + <td>23.0</td> + <td>{{CompatGeckoDesktop("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>remove()</code>{{experimental_inline}}</td> + <td>29.0</td> + <td>{{CompatGeckoDesktop("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>before()</code>, <code>after()</code>, and <code>replaceWith()</code> {{experimental_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</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("23.0")}}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>10.0</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>Support on {{domxref("DocumentType")}} and {{domxref("CharacterData")}} {{experimental_inline}}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoMobile("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>remove()</code>{{experimental_inline}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>before()</code>, <code>after()</code>, and <code>replaceWith()</code> {{experimental_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<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> diff --git a/files/ru/web/api/childnode/remove/index.html b/files/ru/web/api/childnode/remove/index.html new file mode 100644 index 0000000000..ff5b20cc2d --- /dev/null +++ b/files/ru/web/api/childnode/remove/index.html @@ -0,0 +1,148 @@ +--- +title: Node.remove() +slug: Web/API/ChildNode/remove +translation_of: Web/API/ChildNode/remove +--- +<p>Метод <code><strong>Node.remove()</strong></code> удаляет узел из дерева DOM</p> + +<p> </p> + +<p>То, что элемент удален из DOM, еще не значит, что он удален совсем! </p> + +<p>Он остался объектом и исчезнет только тогда, когда исчезнут все ссылки на него.</p> + +<p> </p> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre><em>Node</em>.remove(); +</pre> + +<ul> + <li><strong><code>Node</code></strong> - любой узел DOM</li> +</ul> + +<h2 id="Пример">Пример</h2> + +<h3 id="Использование_remove()">Использование remove()</h3> + +<pre><div id="box"> + <div id="one"></div> + <div id="two"></div> +</div></pre> + +<pre class="brush: js">var elem = document.querySelector("#one"); +elem.remove(); +alert(document.querySelector("#box").innerHTML); //Исчез блок #one +alert(elem); //Но как видите, сам объект еще жив</pre> + +<h2 id="Полифилл">Полифилл</h2> + +<p>Можно создать полифилл для IE 9 и выше, используя следующий код:</p> + +<pre class="brush: js">(function() { + var arr = [window.Element, window.CharacterData, window.DocumentType]; + var args = []; + + arr.forEach(function (item) { + if (item) { + args.push(item.prototype); + } + }); + + // from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md + (function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + this.parentNode.removeChild(this); + } + }); + }); + })(args); +})();</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-childnode-remove', 'ChildNode.remove')}}</td> + <td>{{Spec2('DOM WHATWG')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Поддержка_браузерами">Поддержка браузерами</h2> + +<p>{{CompatibilityTable}}</p> + +<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>23.0</td> + <td>{{CompatGeckoDesktop("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>10.0</td> + <td>7.0</td> + </tr> + <tr> + <td>Поддержка {{domxref("CharacterData")}} и {{domxref("DocumentType")}}</td> + <td>29.0</td> + <td>{{CompatGeckoDesktop("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>7.0</td> + </tr> + </tbody> +</table> + +<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("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>10.0</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Поддержка {{domxref("CharacterData")}} и {{domxref("DocumentType")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("23.0")}}</td> + <td>{{CompatNo}}</td> + <td>16.0</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> diff --git a/files/ru/web/api/childnode/replacewith/index.html b/files/ru/web/api/childnode/replacewith/index.html new file mode 100644 index 0000000000..6537d254c4 --- /dev/null +++ b/files/ru/web/api/childnode/replacewith/index.html @@ -0,0 +1,113 @@ +--- +title: ChildNode.replaceWith() +slug: Web/API/ChildNode/replaceWith +translation_of: Web/API/ChildNode/replaceWith +--- +<div>{{APIRef("DOM")}}</div> + +<p>Метод <code><strong>ChildNode.replaceWith()</strong></code> заменяет <code>ChildNode</code> в списке детей их родителя множеством {{domxref("Node")}} или {{domxref("DOMString")}} объектов. {{domxref("DOMString")}} объекты вставляются как эквивалент нод {{domxref("Text")}}.</p> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox notranslate">[Throws, Unscopable] +void ChildNode.replaceWith((Node or 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")}}: <span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Нода не может быть вставлена в указанную точку иерархии.</span></span></span></li> +</ul> + +<h2 id="Примеры">Примеры</h2> + +<h3 id="Использование_replaceWith">Использование <code>replaceWith()</code></h3> + +<pre class="brush: js notranslate">var parent = document.createElement("div"); +var child = document.createElement("p"); +parent.appendChild(child); +var span = document.createElement("span"); + +child.replaceWith(span); + +console.log(parent.outerHTML); +// "<div><span></span></div>" +</pre> + +<h3 id="ChildNode.replaceWith_не_выполним"><code>ChildNode.replaceWith()</code> не выполним</h3> + +<p>Метод <code>replaceWith()</code> не входит в область видимости оператора <code>with</code>. Смотрите {{jsxref("Symbol.unscopables")}} для дополнительной информации.</p> + +<pre class="brush: js notranslate">with(node) { + replaceWith("foo"); +} +// ReferenceError: replaceWith is not defined </pre> + +<h2 id="Полифилл">Полифилл</h2> + +<p>Вы можете заполнить метод <code>replaceWith()</code> в Internet Explorer 10+ и выше следующим кодом:</p> + +<pre class="brush: js notranslate">function ReplaceWithPolyfill() { + 'use-strict'; // For safari, and IE > 10 + var parent = this.parentNode, i = arguments.length, currentNode; + if (!parent) return; + if (!i) // if there are no arguments + parent.removeChild(this); + while (i--) { // i-- decrements i and returns the value of i before the decrement + currentNode = arguments[i]; + if (typeof currentNode !== 'object'){ + currentNode = this.ownerDocument.createTextNode(currentNode); + } else if (currentNode.parentNode){ + currentNode.parentNode.removeChild(currentNode); + } + // the value of "i" below is after the decrement + if (!i) // if currentNode is the first argument (currentNode === arguments[0]) + parent.replaceChild(currentNode, this); + else // if currentNode isn't the first + parent.insertBefore(currentNode, this.nextSibling); + } +} +if (!Element.prototype.replaceWith) + Element.prototype.replaceWith = ReplaceWithPolyfill; +if (!CharacterData.prototype.replaceWith) + CharacterData.prototype.replaceWith = ReplaceWithPolyfill; +if (!DocumentType.prototype.replaceWith) + DocumentType.prototype.replaceWith = ReplaceWithPolyfill;</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-childnode-replacewith', 'ChildNode.replacewith()')}}</td> + <td>{{Spec2('DOM WHATWG')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> + + + +<p>{{Compat("api.ChildNode.replaceWith")}}</p> + +<h2 id="Смотрите_также">Смотрите также</h2> + +<ul> + <li>{{domxref("ChildNode")}} and {{domxref("ParentNode")}}</li> + <li>{{domxref("Node.replaceChild()")}}</li> + <li>{{domxref("NodeList")}}</li> +</ul> |