コンテンツにスキップ

JavaScript/DOM/querySelectorAll

出典: フリー教科書『ウィキブックス(Wikibooks)』

querySelectorAll()

[編集]

querySelectorAll() は、DocumentまたはElementオブジェクトのメソッドであり、指定したCSSセレクターに一致するすべての要素NodeListとして返します。このNodeListはArray-Likeオブジェクトで、イテレーションが可能です。

概要

[編集]

querySelectorAll() は、DOMツリー内の複数の要素をCSSセレクターを使用して取得するためのメソッドです。 返されるNodeListは静的リストで、DOMが変更されても自動的に更新されることはありません。

構文

[編集]
elements = document.querySelectorAll(selectors);
  • selectors - CSSセレクター文字列(例:要素、クラス、ID)。
  • 戻り値: 指定したセレクターに一致するすべてのElementを含むNodeList

使用例

[編集]

クラス、タグ、属性の選択

[編集]
// すべての<p>タグを取得
const paragraphs = document.querySelectorAll('p');

// 特定のクラスを持つ要素を取得
const items = document.querySelectorAll('.item');

// 特定の属性を持つ要素を取得
const dataElements = document.querySelectorAll('[data-id]');

console.log(paragraphs, items, dataElements);

イテレーション処理

[編集]

NodeListを反復処理して各要素にアクセスする例です。

// querySelectorAllで取得
const elements = document.querySelectorAll('.list-item');

// forEachを使って各要素を処理
elements.forEach((element, index) => {
  console.log(`要素${index}:`, element.textContent);
});

// for...ofループでも処理可能
for (const element of elements) {
  console.log('要素の内容:', element.textContent);
}

スタイル変更

[編集]

一致するすべての要素のスタイルを一括で変更する例です。

const boxes = document.querySelectorAll('.box');

// 各要素に背景色を適用
boxes.forEach(box => {
  box.style.backgroundColor = 'lightblue';
});

注意点

[編集]

例:

const elements = document.querySelectorAll('.item');
const elementArray = Array.from(elements);

elementArray.map(el => console.log(el.textContent));

比較: querySelectorAll() と querySelector()

[編集]
メソッド 返り値 概要
querySelector() 最初に一致した要素 1つの要素のみ取得
querySelectorAll() 一致したすべての要素のNodeList 複数要素を取得

ブラウザ対応

[編集]

querySelectorAll()は、すべての主要なブラウザでサポートされています。

ブラウザ 対応バージョン
Google Chrome 1以上
Firefox 3.5以上
Safari 3.2以上
Edge 12以上
Opera 10以上

関連項目

[編集]

外部リンク

[編集]