1. querySelector とは?
querySelector は、JavaScript の DOM 要素を取得 するためのメソッドです。
CSS セレクターを使って、ページ内の 最初に一致する要素を取得 できます。
documentとは?
documentは、ブラウザが読み込んだ HTMLドキュメント全体 を指すオブジェクトです。
ただし、documentに直接イベントを設定するのではなく、特定の要素を変数に格納して扱うことも可能 です。
ポイント:
getElementByIdなどと異なり、querySelectorは CSS セレクター を使用できるため、クラスや属性を柔軟に指定可能。
2. querySelector の基本的な使い方
const element = document.querySelector(セレクター);
-
セレクター:取得したい要素を指定する CSS セレクター -
element:取得した要素(該当するものがない場合はnull)
☑️ 例1:クラス名を指定して取得
const box = document.querySelector(".box");
console.log(box);
クラス
.boxを持つ最初の要素を取得
☑️ 例2:ID を指定して取得
const header = document.querySelector("#header");
console.log(header);
ID
headerの要素を取得(getElementByIdとほぼ同じ)
☑️ 例3:特定の子要素を取得
const firstItem = document.querySelector("ul li");
console.log(firstItem);
ul内の最初のli要素を取得
3. querySelectorAll との違い
querySelector は 最初に一致した要素のみ取得 するのに対し、
querySelectorAll は すべての一致する要素を取得し、NodeList(配列のようなもの)として返す ことができます。
☑️ 例4:querySelectorAll で複数の要素を取得
const items = document.querySelectorAll(".item");
console.log(items);
クラス
.itemを持つすべての要素を取得
🔍 querySelector vs querySelectorAll
| メソッド | 概要 |
|---|---|
querySelector(".class") |
最初の 1 つだけ 取得 |
querySelectorAll(".class") |
すべての要素 を取得(NodeList) |
☑️ 例5:querySelectorAll でループ処理(forEach を使用)
const items = document.querySelectorAll(".item");
items.forEach(item => {
console.log(item.textContent);
});
すべての
.item要素のテキストを出力
querySelectorAll で取得した NodeList は forEach を使ってループ処理が可能です。
これを活用すると、複数の要素に対して一括で処理を適用することができます。
4. querySelector と getElementById の違い
getElementById は ID を直接検索 するため、高速でシンプルですが、
querySelector("#id") なら CSS セレクターを統一的に利用 できます。
🔍 getElementById vs querySelector
| メソッド | 概要 |
|---|---|
document.getElementById("id") |
ID で要素を検索(高速) |
document.querySelector("#id") |
CSS セレクターで統一的に検索 |
パフォーマンス重視なら
getElementById、柔軟性が欲しいならquerySelector
5. querySelector を特定の要素から実行
querySelector は document だけでなく、特定の要素を起点に検索 することも可能です。
☑️ 例6:特定の親要素内を検索
const parent = document.getElementById("parent");
const child = parent.querySelector(".child");
console.log(child);
#parentの中の.child要素を取得
6. まとめ
☑️ querySelector("セレクター") で 最初に一致する要素を取得
☑️ querySelectorAll("セレクター") で すべての一致する要素を取得(NodeList)
☑️ getElementById よりも 柔軟な検索が可能(ただしパフォーマンスは若干低下)
☑️ 特定の要素を起点に querySelector を実行できる
☑️ querySelectorAll で取得した要素は forEach を使ってループ処理が可能
querySelector を活用して、柔軟な DOM 操作を実現しよう!