aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/element
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-23 15:56:25 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-23 15:56:25 +0100
commit05b2650717b84d199f6ebd5df8a8f9d1e3b23f3f (patch)
tree3a996b21e1eb1ed852ab792b9752648783a87a75 /files/ru/web/api/element
parent10701ffef1cb57f06970990b9b7086ea7f24a019 (diff)
downloadtranslated-content-05b2650717b84d199f6ebd5df8a8f9d1e3b23f3f.tar.gz
translated-content-05b2650717b84d199f6ebd5df8a8f9d1e3b23f3f.tar.bz2
translated-content-05b2650717b84d199f6ebd5df8a8f9d1e3b23f3f.zip
sync: move
Diffstat (limited to 'files/ru/web/api/element')
-rw-r--r--files/ru/web/api/element/nextelementsibling/index.html174
-rw-r--r--files/ru/web/api/element/previouselementsibling/index.html185
2 files changed, 359 insertions, 0 deletions
diff --git a/files/ru/web/api/element/nextelementsibling/index.html b/files/ru/web/api/element/nextelementsibling/index.html
new file mode 100644
index 0000000000..1e8d05c4c2
--- /dev/null
+++ b/files/ru/web/api/element/nextelementsibling/index.html
@@ -0,0 +1,174 @@
+---
+title: NonDocumentTypeChildNode.nextElementSibling
+slug: Web/API/NonDocumentTypeChildNode/nextElementSibling
+translation_of: Web/API/NonDocumentTypeChildNode/nextElementSibling
+original_slug: Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling
+---
+<div>{{APIRef("DOM")}}</div>
+
+<p><code><strong>NonDocumentTypeChildNode.nextElementSibling</strong></code> свойство только для чтения, возвращающее последующий элемент перед текущим, или <code>null</code>, если элемент является последним в своём родительском узле.</p>
+
+<h2 id="Syntax" name="Syntax">Синтаксис</h2>
+
+<pre class="syntaxbox">var <em>nextNode</em> = elementNodeReference.nextElementSibling; </pre>
+
+<h2 id="Example" name="Example">Пример</h2>
+
+<pre class="brush: html">&lt;div id="div-01"&gt;Это div-01&lt;/div&gt;
+&lt;div id="div-02"&gt;Это div-02&lt;/div&gt;
+
+&lt;script type="text/javascript"&gt;
+ var el = document.getElementById('div-01').nextElementSibling;
+ console.log('Сосед div-01:');
+ while (el) {
+ console.log(el.nodeName);
+ el = el.nextElementSibling;
+ }
+&lt;/script&gt;
+</pre>
+
+<p>Этот пример выведет в консоль следующее:</p>
+
+<pre>Сосед div-01:
+DIV
+SCRIPT</pre>
+
+<h2 id="Полифилл_для_IE8">Полифилл для IE8</h2>
+
+<p>Данное свойство не пожддерживается до IE9. Используйте следующий полифилл, чтобы обойти этот недостаток:</p>
+
+<pre class="brush: js">// Источник: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
+if (!('nextElementSibling' in document.documentElement)) {
+    Object.defineProperty(Element.prototype, 'nextElementSibling', {
+        get: function() {
+            var e = this.nextSibling;
+            while (e &amp;&amp; 1 !== e.nodeType) {
+                e = e.nextSibling;
+            }
+            return e;
+        }
+    });
+}</pre>
+
+<h2 id="Полифилл_для_IE9_и_Safari">Полифилл для IE9+ и Safari</h2>
+
+<pre class="brush: js">// Источник: https://github.com/jserz/js_piece/blob/master/DOM/NonDocumentTypeChildNode/nextElementSibling/nextElementSibling.md
+(function(arr) {
+    arr.forEach(function(item) {
+        if (item.hasOwnProperty('nextElementSibling')) {
+            return;
+        }
+        Object.defineProperty(item, 'nextElementSibling', {
+            configurable: true,
+            enumerable: true,
+            get: function() {
+                var el = this;
+                while (el = el.nextSibling) {
+                    if (el.nodeType === 1) {
+                        return el;
+                    }
+                }
+                return null;
+            },
+            set: undefined
+        });
+    });
+})([Element.prototype, CharacterData.prototype]);</pre>
+
+<h2 id="Specification" name="Specification">Спецификации</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-nondocumenttypechildnode-nextelementsibling', 'ChildNodenextElementSibling')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Split the <code>ElementTraversal</code> interface in {{domxref("ChildNode")}}, {{domxref("ParentNode")}}, and {{domxref("NonDocumentTypeChildNode")}}. This method is now defined on the former.<br>
+ The {{domxref("Element")}} and {{domxref("CharacterData")}} interfaces implemented the new interface.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#attribute-nextElementSibling', 'ElementTraversal.nextElementSibling')}}</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="Browser_Compatibility" name="Browser_Compatibility">Совместимость с браузерами</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<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>4</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9</td>
+ <td>9.8</td>
+ <td>4</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("CharacterData")}}</td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25")}} [1]</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>9.8</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td>Поддержка {{domxref("CharacterData")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Firefox 25 также добавил это свойство в {{domxref("DocumentType")}}, но оно было удалено в Firefox 28, из-за проблем совместимости.</p>
+
+<h2 id="См._также">См. также</h2>
+
+<ul>
+ <li>Чистый интерфейс {{domxref("ChildNode")}}.</li>
+ <li>Типы объектов, реализующих этот чистый интерфейс: {{domxref("CharacterData")}}, {{domxref("Element")}}, и {{domxref("DocumentType")}}. </li>
+</ul>
diff --git a/files/ru/web/api/element/previouselementsibling/index.html b/files/ru/web/api/element/previouselementsibling/index.html
new file mode 100644
index 0000000000..2cc659ef51
--- /dev/null
+++ b/files/ru/web/api/element/previouselementsibling/index.html
@@ -0,0 +1,185 @@
+---
+title: NonDocumentTypeChildNode.previousElementSibling
+slug: Web/API/NonDocumentTypeChildNode/previousElementSibling
+translation_of: Web/API/NonDocumentTypeChildNode/previousElementSibling
+---
+<div>
+<div>{{APIRef("DOM")}}</div>
+</div>
+
+<p>Свойство <code><strong>NonDocumentTypeChildNode.previousElementSibling</strong></code> только для чтения возвращает  {{domxref("Element")}} элемент стоящий перед применяемым, из списка дочерних элементов родителя или возвращает null, если таковых не имеется.</p>
+
+<h2 id="Syntax" name="Syntax">Синтаксис</h2>
+
+<pre class="syntaxbox"><var>prevNode</var> = elementNodeReference.previousElementSibling;
+</pre>
+
+<h2 id="Example" name="Example">Примеры</h2>
+
+<pre class="brush: html">&lt;div id="div-01"&gt;Here is div-01&lt;/div&gt;
+&lt;div id="div-02"&gt;Here is div-02&lt;/div&gt;
+&lt;li&gt;This is a list item&lt;/li&gt;
+&lt;li&gt;This is another list item&lt;/li&gt;
+&lt;div id="div-03"&gt;Here is div-03&lt;/div&gt;
+
+&lt;script&gt;
+ var el = document.getElementById('div-03').previousElementSibling;
+ document.write('&lt;p&gt;Siblings of div-03&lt;/p&gt;&lt;ol&gt;');
+ while (el) {
+ document.write('&lt;li&gt;' + el.nodeName + '&lt;/li&gt;');
+ el = el.previousElementSibling;
+ }
+ document.write('&lt;/ol&gt;');
+&lt;/script&gt;
+</pre>
+
+<p>Этот пример выводит следующие элементы на страницу при загрузке:</p>
+
+<pre>Соседи div-03
+
+ 1. LI
+ 2. LI
+ 3. DIV
+ 4. DIV
+</pre>
+
+<h2 id="Полифилл_для_Internet_Explorer_8">Полифилл для Internet Explorer 8</h2>
+
+<p>Это свойство поддерживается начиная с версии IE9, поэтому следующий фрагмент поддерживается, и может использоваться для IE8:</p>
+
+<pre class="brush: js">// Ресурс: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
+if(!("previousElementSibling" in document.documentElement)){
+ Object.defineProperty(Element.prototype, "previousElementSibling", {
+ get: function(){
+ var e = this.previousSibling;
+ while(e &amp;&amp; 1 !== e.nodeType)
+ e = e.previousSibling;
+ return e;
+ }
+ });
+}</pre>
+
+<h2 id="Specification" name="Specification">Полифилл для  Internet Explorer 9+ и Safari</h2>
+
+<pre class="brush: js">// Ресурс: https://github.com/jserz/js_piece/blob/master/DOM/NonDocumentTypeChildNode/previousElementSibling/previousElementSibling.md
+(function (arr) {
+ arr.forEach(function (item) {
+ if (item.hasOwnProperty('previousElementSibling')) {
+ return;
+ }
+ Object.defineProperty(item, 'previousElementSibling', {
+ configurable: true,
+ enumerable: true,
+ get: function () {
+ var el = this;
+ while (el = el.previousSibling) {
+ if (el.nodeType === 1) {
+ return el;
+ }
+ }
+ return null;
+ },
+ set: undefined
+ });
+ });
+})([Element.prototype, CharacterData.prototype]);</pre>
+
+<h2 id="Specification" name="Specification">Спецификация</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-nondocumenttypechildnode-previouselementsibling', 'NonDocumentTypeChildNode.previousElementSibling')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>Splitted the <code>ElementTraversal</code> interface in {{domxref("ChildNode")}}, {{domxref("ParentNode")}}, and {{domxref("NonDocumentTypeChildNode")}}. This method is now defined on the former.<br>
+ The {{domxref("Element")}} and {{domxref("CharacterData")}} interfaces implemented the new interface.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Element Traversal', '#attribute-previousElementSibling', 'ElementTraversal.previousElementSibling')}}</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>
+
+<div>{{CompatibilityTable}}</div>
+
+<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>Basic support (on {{domxref("Element")}})</td>
+ <td>4</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>9</td>
+ <td>9.8</td>
+ <td>4</td>
+ </tr>
+ <tr>
+ <td>Support on {{domxref("CharacterData")}}</td>
+ <td>29.0</td>
+ <td>{{CompatGeckoDesktop("25")}} [1]</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>Basic support (on {{domxref("Element")}})</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>9.8</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ <tr>
+ <td>Support on {{domxref("CharacterData")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("25")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>16.0</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Firefox 25 так же добавлено это свойство {{domxref("DocumentType")}}, но было удалено в Firefox 28 из-за проблем с совместимостью.</p>
+
+<h2 id="Смотрите_так_же">Смотрите так же</h2>
+
+<ul>
+ <li> {{domxref("NonDocumentTypeChildNode")}} чистый интерфейс.</li>
+ <li>
+ <div class="syntaxbox">Типы объектов реализующие чистый интерфейс: {{domxref("CharacterData")}}, и {{domxref("Element")}}.</div>
+ </li>
+</ul>