JavaScript HTML DOM 要素(ノード)

❮ 前章へ 次章へ ❯

ノード(HTML要素)の追加と削除


新しいHTML要素(ノード)の作成

新しい要素をHTML DOMに追加するには、最初に要素(要素ノード)を作成し、それを既存の要素に追加(append)する必要があります。

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);

var element = document.getElementById("div1");
element.appendChild(para);
</script>
Try it Yourself »

例の説明 

このコードは、新しい<p>要素を作成します:

var para = document.createElement("p");

<p>要素にテキストを追加するには、最初にテキストノードを作成する必要があります。 このコードは、テキストノードを作成します:

var node = document.createTextNode("This is a new paragraph.");

次に、<p>要素にテキストノードを追加しなければなりません:

para.appendChild(node);

最後に、新しい要素を既存の要素に追加(append)しなければなりません。

このコードは既存の要素を検索します:

var element = document.getElementById("div1");

このコードは、新しい要素を既存の要素に追加します:

element.appendChild(para);

新しいHTML要素の作成 - insertBefore()

前の例のappendChild() メソッドは、親の最後の子として新しい要素を追加しました。

親の最初の子として追加する場合は、insertBefore() メソッドを使うことができます:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);

var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para, child);
</script>
Try it Yourself »

既存のHTML要素の削除

HTML要素を削除するには、その要素の親を知っている必要があります:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.removeChild(child);
</script>
Try it Yourself »

メソッド node.remove() は、DOM 4 仕様で実装されています。
しかし、ブラウザのサポートが不十分なため、使用しないようにしてください。


例の説明 

このHTML文書には、2つの子ノード(2つの<p>要素)を持つ<div>要素が含まれています:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

id="div1" の要素を検索します:

var parent = document.getElementById("div1");

id="p1" の<p>要素を検索します:

var child = document.getElementById("p1");

親から子を削除します:

parent.removeChild(child);

親を参照せずに、要素を削除することができればうれしいでしょう。
しかし、申し訳ありません。 DOMは、削除したい要素とその親の両方を知っている必要があります。

一般的な回避策は次の通り:削除する子を検索し、parentNodeプロパティを使用して親を探します:

var child = document.getElementById("p1");
child.parentNode.removeChild(child);

HTML要素の置換

要素をHTML DOMに置換するには、replaceChild() メソッドを使用します:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);

var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>
Try it Yourself »

❮ 前章へ 次章へ ❯