From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/web/api/childnode/index.html | 171 ++++++++++++++++++++++ files/ru/web/api/childnode/remove/index.html | 148 +++++++++++++++++++ files/ru/web/api/childnode/replacewith/index.html | 113 ++++++++++++++ 3 files changed, 432 insertions(+) create mode 100644 files/ru/web/api/childnode/index.html create mode 100644 files/ru/web/api/childnode/remove/index.html create mode 100644 files/ru/web/api/childnode/replacewith/index.html (limited to 'files/ru/web/api/childnode') 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 +--- +

{{APIRef("DOM")}}

+ +

Интерфейс ChildNode  содержит методы, специфичные для объектов  {{domxref("Node")}}, которые имеют родителя.

+ +

ChildNode это просто интерфейс и ни один объект этого типа не может быть создан; он реализуется объектами {{domxref("Element")}}, {{domxref("DocumentType")}} и {{domxref("CharacterData")}}.

+ +

Properties

+ +

There is neither inherited, nor specific property.

+ +

Methods

+ +

Отсутствуют унаследованные методы.

+ +
+
{{domxref("ChildNode.remove()")}} {{experimental_inline}}
+
Удаляет данный ChildNode из списка потомков его родителя.
+
{{domxref("ChildNode.before()")}} {{experimental_inline}}
+
Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this ChildNode's parent, just before this ChildNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.
+
{{domxref("ChildNode.after()")}} {{experimental_inline}}
+
Inserts a set of {{domxref("Node")}} or {{domxref("DOMString")}} objects in the children list of this ChildNode's parent, just after this ChildNode. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.
+
{{domxref("ChildNode.replaceWith()")}} {{experimental_inline}}
+
Заменяет ChildNode  в списке потомков его родителя набором {{domxref("Node")}} или {{domxref("DOMString")}} объектов. {{domxref("DOMString")}} objects are inserted as equivalent {{domxref("Text")}} nodes.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('DOM WHATWG', '#interface-childnode', 'ChildNode')}}{{Spec2('DOM WHATWG')}}Интерфейс ElementTraversal  разделен на {{domxref("ParentNode")}} и ChildNode. Свойства previousElementSibling и nextElementSibling теперь определены в последнем.
+ The {{domxref("CharacterData")}} and {{domxref("DocumentType")}} implemented the new interfaces.
+ Добавлены методы remove(), before(), after() и replaceWith().
{{SpecName('Element Traversal', '#interface-elementTraversal', 'ElementTraversal')}}{{Spec2('Element Traversal')}}Added the initial definition of its properties to the ElementTraversal pure interface and use it on {{domxref("Element")}}.
+ +

Polyfill

+ +

External on github: childNode.js

+ +

Browser compatibility

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support (on {{domxref("Element")}})1.0{{CompatGeckoDesktop("23.0")}}9.010.04.0
Support on {{domxref("DocumentType")}} and {{domxref("CharacterData")}} {{experimental_inline}}23.0{{CompatGeckoDesktop("23.0")}}{{CompatNo}}16.0{{CompatNo}}
remove(){{experimental_inline}}29.0{{CompatGeckoDesktop("23.0")}}{{CompatNo}}16.0{{CompatNo}}
before(), after(), and replaceWith() {{experimental_inline}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support (on {{domxref("Element")}}){{ CompatVersionUnknown() }}{{CompatGeckoMobile("23.0")}}{{ CompatVersionUnknown() }}10.0{{ CompatVersionUnknown() }}
Support on {{domxref("DocumentType")}} and {{domxref("CharacterData")}} {{experimental_inline}}{{ CompatVersionUnknown() }}{{CompatGeckoMobile("23.0")}}{{CompatNo}}16.0{{CompatNo}}
remove(){{experimental_inline}}{{CompatVersionUnknown}}{{CompatGeckoMobile("23.0")}}{{CompatNo}}16.0{{CompatNo}}
before(), after(), and replaceWith() {{experimental_inline}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

See also

+ + 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 +--- +

Метод Node.remove() удаляет узел из дерева DOM

+ +

 

+ +

То, что элемент удален из DOM, еще не значит, что он удален совсем! 

+ +

Он остался объектом и исчезнет только тогда, когда исчезнут все ссылки на него.

+ +

 

+ +

Синтаксис

+ +
Node.remove();
+
+ + + +

Пример

+ +

Использование remove()

+ +
<div id="box">
+   <div id="one"></div>
+   <div id="two"></div>
+</div>
+ +
var elem = document.querySelector("#one");
+elem.remove();
+alert(document.querySelector("#box").innerHTML); //Исчез блок #one
+alert(elem); //Но как видите, сам объект еще жив
+ +

Полифилл

+ +

Можно создать полифилл для IE 9 и выше, используя следующий код:

+ +
(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);
+})();
+ +

Спецификация

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('DOM WHATWG', '#dom-childnode-remove', 'ChildNode.remove')}}{{Spec2('DOM WHATWG')}}Initial definition.
+ +

Поддержка браузерами

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ОсобенностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка {{domxref("Element")}}23.0{{CompatGeckoDesktop("23.0")}}{{CompatNo}}10.07.0
Поддержка {{domxref("CharacterData")}} и {{domxref("DocumentType")}}29.0{{CompatGeckoDesktop("23.0")}}{{CompatNo}}16.07.0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ОсобенностьAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка {{domxref("Element")}}{{CompatVersionUnknown}}{{CompatGeckoMobile("23.0")}}{{CompatNo}}10.0{{CompatNo}}
Поддержка {{domxref("CharacterData")}} и {{domxref("DocumentType")}}{{CompatVersionUnknown}}{{CompatGeckoMobile("23.0")}}{{CompatNo}}16.0{{CompatNo}}
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 +--- +
{{APIRef("DOM")}}
+ +

Метод ChildNode.replaceWith() заменяет ChildNode в списке детей их родителя множеством {{domxref("Node")}} или {{domxref("DOMString")}} объектов. {{domxref("DOMString")}} объекты вставляются как эквивалент нод {{domxref("Text")}}.

+ +

Синтаксис

+ +
[Throws, Unscopable]
+void ChildNode.replaceWith((Node or DOMString)... nodes);
+
+ +

Параметры

+ +
+
nodes
+
Множество заменяемых {{domxref("Node")}} или {{domxref("DOMString")}} объектов.
+
+ +

Исключения

+ + + +

Примеры

+ +

Использование replaceWith()

+ +
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>"
+
+ +

ChildNode.replaceWith() не выполним

+ +

Метод replaceWith() не входит в область видимости оператора with. Смотрите {{jsxref("Symbol.unscopables")}} для дополнительной информации.

+ +
with(node) {
+  replaceWith("foo");
+}
+// ReferenceError: replaceWith is not defined 
+ +

Полифилл

+ +

Вы можете заполнить метод replaceWith() в Internet Explorer 10+ и выше следующим кодом:

+ +
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;
+ +

Спецификация

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('DOM WHATWG', '#dom-childnode-replacewith', 'ChildNode.replacewith()')}}{{Spec2('DOM WHATWG')}}Initial definition.
+ +

Совместимость с браузерами

+ + + +

{{Compat("api.ChildNode.replaceWith")}}

+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf