要素の取得・追加・削除

querySelector appendChild remove

JavaScriptでHTML要素をDOM(Document Object Model)から取得し、追加・削除する基本操作です。

デモ:要素の追加・削除

  • アイテム A
  • アイテム B
  • アイテム C

要素の取得方法

メソッド返り値用途
querySelector()最初の1要素CSSセレクタで取得
querySelectorAll()NodeList(全要素)CSSセレクタで複数取得
getElementById()1要素 or nullIDで取得(高速)
getElementsByClassName()HTMLCollection(live)クラス名で取得

コード例

js
// 要素の取得
const el = document.querySelector('#main');       // ID
const all = document.querySelectorAll('.item');   // クラス名(全て)
const h1 = document.querySelector('h1');          // タグ名

// 要素の作成・追加
const li = document.createElement('li');
li.textContent = '新しいアイテム';
document.querySelector('ul').appendChild(li);     // 末尾に追加

// insertAdjacentElement(位置指定)
parent.insertAdjacentElement('beforeend', li);    // 末尾
parent.insertAdjacentElement('afterbegin', li);   // 先頭

// 要素の削除
el.remove();                          // 自身を削除
parent.removeChild(child);           // 子要素を削除

// 複数要素の操作
all.forEach(item => {
  item.style.color = 'red';
});

// querySelectorAll は配列ではなく NodeList
// スプレッド演算子で配列に変換できる
const arr = [...document.querySelectorAll('.item')];

比較:querySelector vs getElementById

観点querySelectorgetElementById
セレクタCSSセレクタ全般IDのみ
速度やや遅い高速(最速)
柔軟性高い(複雑な指定も可)低い
推奨度✅ 現代的・推奨△ IDが確実なとき

NEWreplaceChildren()・before()・after()(モダンDOM操作)

従来の innerHTML = "" を置き換える安全なメソッド群です。

js
// replaceChildren: 子要素を全て置き換え(innerHTML=""より安全)
parent.replaceChildren(newChild1, newChild2);
parent.replaceChildren(); // 空にする

// before / after: 隣接要素として挿入
el.before(newEl);   // el の直前に挿入
el.after(newEl);    // el の直後に挿入

// prepend / append(複数挿入対応)
parent.prepend(el1, el2, '文字列も可');
parent.append(el1, el2);

🤖 AIプロンプトテンプレート

以下の要件を満たすTypeScript + Reactコンポーネントを作成してください。

- querySelector/createElement/appendChild/removeChildを使ったDOM操作のサンプルを示す
- querySelectorAll()でNodeListを取得して複数要素を一括操作する例を含める
- DocumentFragmentを使った効率的なDOM追加のサンプルを含める
- cloneNode()で要素を複製して追加する例を示す
- MutationObserverでDOM変更を監視するサンプルを含める
- コメントは日本語で記述する

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。