From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/childnode/after/index.html | 184 ++++++++++++++++++++++ files/ja/web/api/childnode/before/index.html | 144 +++++++++++++++++ files/ja/web/api/childnode/index.html | 91 +++++++++++ files/ja/web/api/childnode/remove/index.html | 96 +++++++++++ files/ja/web/api/childnode/replacewith/index.html | 119 ++++++++++++++ 5 files changed, 634 insertions(+) create mode 100644 files/ja/web/api/childnode/after/index.html create mode 100644 files/ja/web/api/childnode/before/index.html create mode 100644 files/ja/web/api/childnode/index.html create mode 100644 files/ja/web/api/childnode/remove/index.html create mode 100644 files/ja/web/api/childnode/replacewith/index.html (limited to 'files/ja/web/api/childnode') diff --git a/files/ja/web/api/childnode/after/index.html b/files/ja/web/api/childnode/after/index.html new file mode 100644 index 0000000000..8f29bb44f3 --- /dev/null +++ b/files/ja/web/api/childnode/after/index.html @@ -0,0 +1,184 @@ +--- +title: ChildNode.after() +slug: Web/API/ChildNode/after +tags: + - API + - DOM + - Method + - Node + - Reference +translation_of: Web/API/ChildNode/after +--- +
{{APIRef("DOM")}}
+ +

ChildNode.after() は、ChildNode の親の子リストの、ChildNode の直後に、 {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。

+ +

構文

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

パラメーター

+ +
+
nodes
+
{{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを挿入します。
+
+ +

例外

+ + + +

+ +

要素の挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+var span = document.createElement("span");
+
+child.after(span);
+
+console.log(parent.outerHTML);
+// "<div><p></p><span></span></div>"
+
+ +

テキストの挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+
+child.after("Text");
+
+console.log(parent.outerHTML);
+// "<div><p></p>Text</div>"
+ +

要素とテキストの挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+var span = document.createElement("span");
+
+child.after(span, "Text");
+
+console.log(parent.outerHTML);
+// "<div><p></p><span></span>Text</div>"
+ +

ChildNode.after() はスコーピングに非対応

+ +

after() メソッドは with 文でのスコーピングに対応していません。詳細は {{jsxref("Symbol.unscopables")}} をご覧ください。

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

ポリフィル

+ +

以下のポリフィルで、Internet Explorer 9 以降でも after() メソッドが利用できます。

+ +
// from: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/after()/after().md
+(function (arr) {
+  arr.forEach(function (item) {
+    if (item.hasOwnProperty('after')) {
+      return;
+    }
+    Object.defineProperty(item, 'after', {
+      configurable: true,
+      enumerable: true,
+      writable: true,
+      value: function after() {
+        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.parentNode.insertBefore(docFrag, this.nextSibling);
+      }
+    });
+  });
+})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
+ +

別のポリフィル

+ +
// from: https://github.com/FabioVergani/js-Polyfill_Element.prototype.after/blob/master/after.js
+
+(function(x){
+ var o=x.prototype,p='after';
+ if(!o[p]){
+    o[p]=function(){
+     var e, m=arguments, l=m.length, i=0, t=this, p=t.parentNode, n=Node, s=String, d=document;
+     if(p!==null){
+        while(i<l){
+         e=m[i];
+         if(e instanceof n){
+            t=t.nextSibling;
+            if(t!==null){
+                p.insertBefore(e,t);
+            }else{
+                p.appendChild(e);
+            };
+         }else{
+            p.appendChild(d.createTextNode(s(e)));
+         };
+         ++i;
+        };
+     };
+    };
+ };
+})(Element);
+
+
+
+/*
+minified:
+
+(function(x){
+ var o=x.prototype;
+ o.after||(o.after=function(){var e,m=arguments,l=m.length,i=0,t=this,p=t.parentNode,n=Node,s=String,d=document;if(p!==null){while(i<l){((e=m[i]) instanceof n)?(((t=t.nextSibling )!==null)?p.insertBefore(e,t):p.appendChild(e)):p.appendChild(d.createTextNode(s(e)));++i;}}});
+}(Element));
+*/
+
+ +

仕様

+ + + + + + + + + + + + + + +
仕様書策定状況コメント
{{SpecName('DOM WHATWG', '#dom-childnode-after', 'ChildNode.after()')}}{{Spec2('DOM WHATWG')}}初期定義
+ +

ブラウザー実装状況

+ + + +

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

+ +

関連情報

+ + diff --git a/files/ja/web/api/childnode/before/index.html b/files/ja/web/api/childnode/before/index.html new file mode 100644 index 0000000000..109db0d9e4 --- /dev/null +++ b/files/ja/web/api/childnode/before/index.html @@ -0,0 +1,144 @@ +--- +title: ChildNode.before() +slug: Web/API/ChildNode/before +tags: + - API + - DOM + - Method + - Node + - Reference +translation_of: Web/API/ChildNode/before +--- +
{{APIRef("DOM")}}
+ +

ChildNode.before()ChildNode の親の子リストの、ChildNode の直前に、 {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。

+ +

構文

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

パラメーター

+ +
+
nodes
+
{{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを挿入します。
+
+ +

例外

+ + + +

+ +

要素の挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+var span = document.createElement("span");
+
+child.before(span);
+
+console.log(parent.outerHTML);
+// "<div><span></span><p></p></div>"
+
+ +

テキストの挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+
+child.before("Text");
+
+console.log(parent.outerHTML);
+// "<div>Text<p></p></div>"
+ +

要素とテキストの挿入

+ +
var parent = document.createElement("div");
+var child = document.createElement("p");
+parent.appendChild(child);
+var span = document.createElement("span");
+
+child.before(span, "Text");
+
+console.log(parent.outerHTML);
+// "<div><span></span>Text<p></p></div>"
+ +

ChildNode.before() はスコーピングに非対応

+ +

before() メソッドは with 文でのスコーピングに対応していません。詳細は {{jsxref("Symbol.unscopables")}} をご覧ください。

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

ポリフィル

+ +

以下のポリフィルで、 Internet Explorer 9 以降でも before() メソッドが利用できます。

+ +
// from: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/before()/before().md
+(function (arr) {
+  arr.forEach(function (item) {
+    if (item.hasOwnProperty('before')) {
+      return;
+    }
+    Object.defineProperty(item, 'before', {
+      configurable: true,
+      enumerable: true,
+      writable: true,
+      value: function before() {
+        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.parentNode.insertBefore(docFrag, this);
+      }
+    });
+  });
+})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
+ +

仕様

+ + + + + + + + + + + + + + +
仕様書策定状況コメント
{{SpecName('DOM WHATWG', '#dom-childnode-before', 'ChildNode.before()')}}{{Spec2('DOM WHATWG')}}初期定義
+ +

ブラウザー実装状況

+ + + +

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

+ +

関連情報

+ + diff --git a/files/ja/web/api/childnode/index.html b/files/ja/web/api/childnode/index.html new file mode 100644 index 0000000000..a5713a2bdd --- /dev/null +++ b/files/ja/web/api/childnode/index.html @@ -0,0 +1,91 @@ +--- +title: ChildNode +slug: Web/API/ChildNode +tags: + - API + - DOM + - Experimental + - Interface + - Node +translation_of: Web/API/ChildNode +--- +

{{APIRef("DOM")}}

+ +

ChildNode ミックスインは親を持つことができる {{domxref("Node")}} オブジェクトに共通のメソッド・プロパティが含まれています。これは、{{domxref("Element")}}、{{domxref("DocumentType")}}、{{domxref("CharacterData")}} オブジェクトによって実装されています。

+ +

プロパティ

+ +

継承された、または固有のプロパティはありません。

+ +

メソッド

+ +

継承されたメソッドはありません。

+ +
+
{{domxref("ChildNode.remove()")}} {{experimental_inline}}
+
この ChildNodeを、その親の children から削除します。
+
{{domxref("ChildNode.before()")}} {{experimental_inline}}
+
{{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを、この ChildNode の親の children の、ChildNode の直前に挿入します。{{domxref("DOMString")}} オブジェクトは、{{domxref("Text")}} ノードと等価なノードとして挿入されます。
+
{{domxref("ChildNode.after()")}} {{experimental_inline}}
+
{{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを、この ChildNode の親の children の、ChildNode の直後に挿入します。{{domxref("DOMString")}} オブジェクトは、{{domxref("Text")}} ノードと等価なノードとして挿入されます。
+
{{domxref("ChildNode.replaceWith()")}} {{experimental_inline}}
+
ChildNode の親の children 内に含まれるこの ChildNode を {{domxref("Node")}} または {{domxref("DOMString")}} のセットと置き換えます。{{domxref("DOMString")}} オブジェクトは、{{domxref("Text")}} ノードと等価なノードとして挿入されます。
+
+ +

仕様

+ + + + + + + + + + + + + + + + + + + +
仕様書状況コメント
{{SpecName('DOM WHATWG', '#interface-childnode', 'ChildNode')}}{{Spec2('DOM WHATWG')}}ElementTraversal インターフェースは {{domxref("ParentNode")}} と ChildNode に分割されました。 previousElementSiblingnextElementSibling は後者で定義されています。
+ {{domxref("CharacterData")}} と {{domxref("DocumentType")}} は新しいインターフェースが実装されています。
+ remove(), before(), after() および replaceWith() メソッドが追加されました。
{{SpecName('Element Traversal', '#interface-elementTraversal', 'ElementTraversal')}}{{Spec2('Element Traversal')}}ElementTraversal 基本インターフェースにこのプロパティの初期定義が追加され、{{domxref("Element")}} で使われます。
+ +

互換コード

+ +

外部サイト (github): childNode.js

+ +

ブラウザの実装状況

+ + + +

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

+ +

関連項目

+ + diff --git a/files/ja/web/api/childnode/remove/index.html b/files/ja/web/api/childnode/remove/index.html new file mode 100644 index 0000000000..82170c1da0 --- /dev/null +++ b/files/ja/web/api/childnode/remove/index.html @@ -0,0 +1,96 @@ +--- +title: ChildNode.remove() +slug: Web/API/ChildNode/remove +tags: + - API + - ChildNode + - DOM + - Experimental + - Method +translation_of: Web/API/ChildNode/remove +--- +
{{APIRef("DOM")}}
+ +

ChildNode.remove() は所属するツリーからオブジェクトを削除します。

+ +

構文

+ +
node.remove();
+
+ +

+ +

remove() の使用

+ +
<div id="div-01">Here is div-01</div>
+<div id="div-02">Here is div-02</div>
+<div id="div-03">Here is div-03</div>
+
+ +
var el = document.getElementById('div-02');
+el.remove(); // 'div-02' の id を持った div を削除
+
+ +

ChildNode.remove() はスコーピングに非対応

+ +

remove() メソッドは with 文でのスコーピングに対応していません。 詳細は {{jsxref("Symbol.unscopables")}} をご覧ください。

+ +
with(node) {
+  remove();
+}
+// ReferenceError: remove is not defined 
+ +

ポリフィル

+ +

以下のポリフィルで、Internet Explorer 9 以降でも remove() メソッドが利用できます。

+ +
// 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);
+      }
+    });
+  });
+})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('DOM WHATWG', '#dom-childnode-remove', 'ChildNode.remove')}}{{Spec2('DOM WHATWG')}}初回定義
+ +

ブラウザーの対応

+ + + +

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

+ +

関連情報

+ + diff --git a/files/ja/web/api/childnode/replacewith/index.html b/files/ja/web/api/childnode/replacewith/index.html new file mode 100644 index 0000000000..1f5874de65 --- /dev/null +++ b/files/ja/web/api/childnode/replacewith/index.html @@ -0,0 +1,119 @@ +--- +title: ChildNode.replaceWith() +slug: Web/API/ChildNode/replaceWith +tags: + - API + - DOM + - Method + - Node + - Reference +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 
+ +

ポリフィル

+ +

以下のポリフィルで、 Internet Explorer 9 以降でも replaceWith() メソッドが利用できます。

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

仕様

+ + + + + + + + + + + + + + +
仕様書策定状況コメント
{{SpecName('DOM WHATWG', '#dom-childnode-replacewith', 'ChildNode.replacewith()')}}{{Spec2('DOM WHATWG')}}初期定義
+ +

ブラウザー実装状況

+ + + +

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

+ +

関連情報

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