中学理科1626729 views
高校生物549999 views
いろは2988729 views
高校化学2914160 views
数学講師2856326 views
高校国語785873 views
英語608453 views
りんご194232 views
中学数学621573 views
中学社会667231 views
Help
Tools

English

remove と removeChild で要素を削除する

removeremoveChild は、DOM から要素を削除するメソッドです。新しい remove のほうがシンプルですが、removeChild も使い方を知っておくと便利です。

remove の基本

remove は、要素自身を DOM から削除します。

const element = document.getElementById('target');
element.remove();

これだけで要素が消えます。とてもシンプルです。

removeChild の基本

removeChild は、親要素から子要素を削除します。

const parent = document.getElementById('container');
const child = document.getElementById('target');
parent.removeChild(child);

戻り値は削除した要素なので、後で再利用できます。

const removed = parent.removeChild(child);
// removed を別の場所に追加することも可能

両者の違い

remove

自分自身を削除。親を指定する必要がない。シンプル

removeChild

親から子を削除。戻り値は削除した要素。IE 対応あり

実際に動かしてみよう

HTML
CSS
JavaScript
<ul id="list">
  <li>項目1 <button class="del">削除</button></li>
  <li>項目2 <button class="del">削除</button></li>
  <li>項目3 <button class="del">削除</button></li>
</ul>
#list li {
  padding: 8px;
  margin: 4px;
  background: #f0f0f0;
}
document.getElementById('list').addEventListener('click', function(e) {
  if (e.target.matches('.del')) {
    const li = e.target.closest('li');
    li.remove();
  }
});

すべての子要素を削除する

親要素の中身をすべて消したい場合、いくつかの方法があります。

const parent = document.getElementById('container');

// 方法1: innerHTML を空にする
parent.innerHTML = '';

// 方法2: replaceChildren を使う(引数なし)
parent.replaceChildren();

// 方法3: while ループで順番に削除
while (parent.firstChild) {
  parent.removeChild(parent.firstChild);
}

innerHTML = '' が一番シンプルですが、イベントリスナーがリークする可能性があります。replaceChildren() は新しい API ですが、きれいに削除できます。

削除した要素を別の場所に移動

removeChild の戻り値を使えば、要素を移動させることもできます。

const oldParent = document.getElementById('old');
const newParent = document.getElementById('new');
const child = document.getElementById('target');

const removed = oldParent.removeChild(child);
newParent.appendChild(removed);

ただし実際には、appendChild するだけで自動的に元の場所から削除されるので、明示的な削除は不要です。