JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでHTMLの子ノードを削除する方法をわかりやすく解説

Web開発において、DOM操作は欠かせないスキルのひとつです。その中でも「子ノード(子要素)を削除する」処理は、リスト項目の動的な追加・削除など、さまざまな場面で活用されます。

JavaScriptでは removeChild() メソッドを使うことで、親要素から指定した子ノードを取り除くことができます。以下に、実際に動作するコード例を示します。

コード例

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result {
        font-size: 20px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>JavaScriptを使ってHTMLの子ノードを削除する</h1>
<div style="color: green;" class="result">
<ul class="animal">
<li>牛</li>
<li>ライオン</li>
<li>トラ</li>
<li>水牛</li>
</ul>
</div>
<button class="Btn">CLICK HERE</button>
<h3>
上のボタンをクリックすると、リストの先頭要素が削除されます
</h3>
<script>
    let resEle = document.querySelector(".result");
    let animalList = document.querySelector(".animal");
    document.querySelector(".Btn").addEventListener("click", () => {
        animalList.removeChild(animalList.childNodes[0]);
        animalList = animalList;
    });
</script>
</body>
</html>

実行結果

上記のコードを実行すると、ブラウザには次のように表示されます。

JavaScriptでHTMLの子ノードを削除する方法をわかりやすく解説

「CLICK HERE」ボタンをクリックすると、リストの最初の要素が削除され、表示は次のように変化します。

JavaScriptでHTMLの子ノードを削除する方法をわかりやすく解説

コードのポイント

  • querySelector():CSSセレクタを指定して対象のHTML要素を取得します。
  • addEventListener("click", ...):ボタンがクリックされたときに実行されるイベントリスナーを登録します。
  • removeChild(childNode):親ノードから引数で渡した子ノードを削除します。

注意点:空白テキストノードについて

「CLICK HERE」を1回クリックしてもリスト項目が消えず、もう1回押すと消えることがあります。これは、childNodes プロパティには要素ノードだけでなく、HTML内の改行やインデントによる空白テキストノードも含まれるためです。

確実にli要素だけを削除したい場合は、children プロパティ(要素ノードのみを返す)を使うと安全です。

animalList.removeChild(animalList.children[0]);

モダンな代替手段:remove() メソッド

近年のブラウザでは、よりシンプルに書ける remove() メソッドも利用できます。こちらは親要素を意識せず、対象ノード自身を直接削除できます。

document.querySelector(".animal li").remove();

状況に応じて使い分けることで、より読みやすく保守しやすいコードになります。

  1. JavaScriptでIDを指定して要素を削除する方法

    JavaScriptでIDを指定して要素を削除するIDを使ってHTML要素を削除するには、remove()メソッドを使用します。このメソッドは、対象のDOM要素をドキュメントから直接取り除くことができる、最もシンプルで直感的な方法です。コード例以下は実際のサンプルコードです。<!DOCTYPE html> <html lang=ja> <head>    <meta charset=UTF-8>    <meta name=viewport content=width=device-width, in

  2. JavaScriptでDOMノードのすべての子要素を一括削除する方法

    JavaScriptでDOMノードからすべての子要素を削除したい場合は、親要素のinnerHTMLに空文字列('')を設定するのが最もシンプルで手軽な方法です。これにより、その要素の中身が丸ごとクリアされます。 サンプルコード 実際に動作するコードを見てみましょう。ボタンをクリックすると、赤い枠のボックス内の子要素がすべて削除される仕組みです。 <!DOCTYPE html> <html lang="ja"> <head>     <meta charset="U