JavaScript ・ DOM操作

querySelector()

CSSセレクタで要素を取得する

CSSと同じセレクタを使って、HTMLの要素を取得します。JavaScriptで画面を操作するときの最初の一歩です。

種類
Document / Element のメソッド
戻り値
最初に見つかった要素(ないと null)
複数取得
querySelectorAll()
01

サンプルコード

HTML
1<h1 id="title">メニュー</h1>
2<ul>
3 <li class="item">ブレンド</li>
4 <li class="item">カフェラテ</li>
5</ul>
JS
1const title = document.querySelector('#title');
2title.style.color = '#b68235';
3
4const items = document.querySelectorAll('.item');
5console.log(items.length + '個の要素');
6console.log(items[0]);
02

実行結果

ブラウザでの表示
コンソール
  1. console.log() の出力がここに表示されます
03

解説

document.querySelector('セレクタ') は、CSSと同じ書き方で要素を探し、最初に見つかった1つを返します。id なら #title、クラスなら .item のように書きます。

当てはまる要素をすべて取得するには querySelectorAll() を使います。結果は配列に似た NodeList で、length や forEach() が使えます。

見つからなかったときは null が返ります。そのまま操作するとエラーになるため、要素があるか確認してから使うと安全です。

04

応用例・注意点

要素を取得する主なメソッド

メソッド説明
querySelector(セレクタ)最初の1つを取得
querySelectorAll(セレクタ)すべてを NodeList で取得
getElementById(id)id で取得(# は付けない)
要素.closest(セレクタ)自分または祖先で最も近い要素
要素.querySelector()その要素の中だけを探す

要素があるときだけ処理する

?. (オプショナルチェーン)を使うと、要素がないときにエラーになりません。

JS
1document.querySelector('#banner')?.remove();

注意点

  1. 01script を head に書くと、HTMLが読み込まれる前に実行されて要素が見つかりません。body の最後に書くか、defer を付けます。
  2. 02querySelectorAll() の結果は配列そのものではないため、map() などを使うときは Array.from() で配列に変換します。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉