言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. HTML要素.remove() / removeChild()

HTML要素.remove() / removeChild()

対応: DOM Level 4(2015)

HTML要素をDOMから削除するメソッドです。『HTML要素.remove()』は自分自身を削除し、『親HTML要素.removeChild()』は指定した子要素を削除します。

構文

// 自分自身を削除します。
element.remove();

// 親HTML要素から子要素を削除します。
親要素.removeChild(削除する子要素);

メソッド一覧

メソッド概要
remove()HTML要素が自分自身をDOMから削除します。親要素を指定する必要がないため、シンプルに記述できます。
parentNode.removeChild(子要素)親HTML要素から指定した子要素を削除します。戻り値として削除されたHTML要素を返すため、後から再利用することもできます。

サンプルコード

sample_remove.html
<ul id="list">
	<li id="item1">五条悟</li>
	<li id="item2">両面宿儺</li>
	<li id="item3">虎杖悠仁</li>
	<li id="item4">伏黒恵</li>
	<li id="item5">釘崎野薔薇</li>
</ul>
<ul id="active-list">
	<li class="active">呪術高専・一年</li>
	<li class="active">呪術高専・二年</li>
	<li class="inactive">呪いの王</li>
</ul>
sample_remove.js
// パターン1: remove() で自分自身を削除する
var item1 = document.getElementById("item1");
item1.remove(); // 五条悟が削除されます。

// パターン2: removeChild() で子要素を削除する(戻り値を再利用する)
var list = document.getElementById("list");
var item3 = document.getElementById("item3");
var removed = list.removeChild(item3); // 削除したHTML要素が返されます。
console.log(removed.textContent); // 『虎杖悠仁』と出力されます。
list.appendChild(removed); // 削除したHTML要素を末尾に移動します。

// パターン3: 条件に一致する複数のHTML要素をまとめて削除する
var inactiveItems = document.querySelectorAll(".inactive");
inactiveItems.forEach(function(item) {
	item.remove(); // 「呪いの王」が削除されます。
});

// パターン4: 親要素のすべての子要素を削除する
var activeList = document.getElementById("active-list");
while (activeList.firstChild) {
	activeList.removeChild(activeList.firstChild); // 子要素がなくなるまで繰り返します。
}
console.log(activeList.children.length); // 『0』と出力されます。

サンプルページはこちら

実行結果

上記のコードを実行すると、HTMLは以下のように変化します。

<!-- 実行前 -->
<ul id="list">
	<li id="item1">項目1</li>
	<li id="item2">項目2</li>
	<li id="item3">項目3</li>
</ul>

<!-- item1.remove() 後 -->
<ul id="list">
	<li id="item2">項目2</li>
	<li id="item3">項目3</li>
</ul>

<!-- list.removeChild(item3) 後 -->
<ul id="list">
	<li id="item2">項目2</li>
</ul>

概要

HTML要素をDOMから削除する方法は2つあります。『HTML要素.remove()』は自分自身を削除するメソッドで、親要素を取得する必要がないため簡潔に書けます。『親HTML要素.removeChild()』は親要素から指定した子要素を削除するメソッドで、古くからあるDOM Level 1のメソッドです。

『親HTML要素.removeChild()』は削除したHTML要素を戻り値として返します。この戻り値を変数に保存しておけば、後から『親HTML要素.appendChild()』で別の場所に追加するなど、削除したHTML要素を再利用することが可能です。

どちらのメソッドもDOMから取り除くだけで、メモリ上からは即座に消えません。変数に参照が残っている間はHTML要素のデータが保持されるため、再利用したい場合は変数に保存しておきましょう。単純に削除したいだけであれば『HTML要素.remove()』がおすすめです。

対応ブラウザ

Chrome Chrome
49 以降
23 以前 ×
Firefox Firefox
57 以降
22 以前 ×
Safari Safari
18 以降
6 以前 ×
Edge Edge
80 以降
11 以前 ×
IE IE
11 ×
全バージョンで非対応
Opera Opera
48 以降
14 以前 ×
iOS Safari iOS Safari
18 以降
6 以前 ×
Android Browser Android Browser
37 以降
4 以前 ×
Chrome Android Chrome Android
36 以降
24 以前 ×
Firefox Android Firefox Android
79 以降
22 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。