aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/element/previouselementsibling/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/api/element/previouselementsibling/index.html')
-rw-r--r--files/ru/web/api/element/previouselementsibling/index.html186
1 files changed, 186 insertions, 0 deletions
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..1e6ab64268
--- /dev/null
+++ b/files/ru/web/api/element/previouselementsibling/index.html
@@ -0,0 +1,186 @@
+---
+title: NonDocumentTypeChildNode.previousElementSibling
+slug: Web/API/Element/previousElementSibling
+translation_of: Web/API/NonDocumentTypeChildNode/previousElementSibling
+original_slug: 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>