HTML DOM 要素 querySelectorAll() メソッド

定義と使用法

querySelectorAll() メソッドは、指定された CSS 選択子に一致する要素の子要素のコレクションを返し、静的な NodeList オブジェクトとして提供します。

NodeList

NodeList はクラス配列のノードコレクション(リスト)です。

リスト内のノードはインデックス(インデックス)でアクセスできます。インデックスは 0 から始まります。

length 属性はリスト内のノード数を返します。

も参照してください:

リファレンスマニュアル:

classList 属性

className 属性

querySelector() メソッド

getElementsByTagName() メソッド

getElementsByClassName() メソッド

HTML DOM Styleオブジェクト

チュートリアル:

CSS 文法

CSS セレクタ

CSS セレクタ リファレンスマニュアル

例 1

div 内の class="example" の最初の要素の背景色を設定します:

// id="myDIV" の要素(div)を取得し、その div 内の class="example" を持つすべての要素を取得
var x = document.getElementById("myDIV").querySelectorAll(".example"); 
// div 内の最初の class="example" (インデックス 0) の要素の背景色を設定
x[0].style.backgroundColor = "red"; 

自分で試してみる

ヒント:以下のページにはさらに多くの例があります。

構文

element.querySelectorAll(cssSelectors)

パラメータ

パラメータ 説明
cssSelectors

必須。文字列。一つまたは複数の CSS 選択子を指定して、要素をマッチングします。

CSS 選択子は、id、クラス、タイプ、属性、属性値などに基づいて HTML 要素を選択するために使用されます。

複数の選択子に対して、各選択子をカンマで区切ります。

ヒント:すべての CSS 選択子のリストについては、以下を参照してください。 CSS セレクタ リファレンスマニュアル

技術的詳細

返り値:

NodeList オブジェクトは、指定された CSS 選択子に一致する現在のすべての要素の後裔要素を表します。

NodeList は静的な集合であり、これは DOM 内の変更が集合に影響を与えないことを意味します。

注意:指定された選択子が無効な場合、SYNTAX_ERR 例外が投げられます

DOM バージョン: Selectors Level 1 Document Object

さらに詳しい例

例 2

div 元素内のすべての <p> 要素を取得し、最初の <p> 要素(インデックス 0)の背景色を設定します:

// id="myDIV" の要素(div)を取得し、その div 内のすべての p 要素を取得します
var x = document.getElementById("myDIV").querySelectorAll("p"); 
// div 内の最初の <p> 要素(インデックス 0)の背景色を設定
x[0].style.backgroundColor = "red";  

自分で試してみる

例 3

div 内の class="example" を持つすべての <p> 要素を取得し、最初の <p> 要素の背景を設定します:

// id="myDIV" の要素(div)を取得し、その div 内のすべての class="example" の p 要素を取得します
var x = document.getElementById("myDIV").querySelectorAll("p.example"); 
// div 内の class="example" の最初の <p> 要素(インデックス 0)の背景色を設定します
x[0].style.backgroundColor = "red";  

自分で試してみる

例 4

<div> 要素内に class="example" を持つ要素の数を調べます(NodeList オブジェクトの length 属性を使用して):

/* id="myDIV" の要素(div)を取得し、その div 内のすべての class="example" の p 要素を取得し、見つかった要素の数を返します */
var x = document.getElementById("myDIV").querySelectorAll(".example").length;

自分で試してみる

例 5

<div> 要素内の class="example" のすべての要素の背景色を設定します:

// id="myDIV" の要素(div)を取得し、その div 内のすべての class="example" 要素を取得します
var x = document.getElementById("myDIV").querySelectorAll(".example");
// for ループを作成し、div 内のすべての class="example" 要素の背景色を設定します
var i;
for (i = 0; i < x.length; i++) {
  x[i].style.backgroundColor = "red";
}

自分で試してみる

例 6

<div> 要素内のすべての <p> 要素の背景色を設定します:

// id="myDIV" の要素(div)を取得し、その div 内のすべての p 要素を取得します
var x = document.getElementById("myDIV").querySelectorAll("p");
// for ループを作成し、div 内のすべての p 要素の背景色を設定します
var i;
for (i = 0; i < x.length; i++) {
  x[i].style.backgroundColor = "red";
}

自分で試してみる

例 7

<div> 要素内のすべての target 属性を持つ <a> 要素の枠線スタイルを設定します:

// id="myDIV" の要素(div)を取得し、その div 内のすべての "target" 属性を持つ <a> 要素を取得します
var x = document.getElementById("myDIV").querySelectorAll("a[target]");
// for ループを作成し、div内のすべてのtarget属性を持つ<a>要素の枠を設定
var i;
for (i = 0; i < x.length; i++) {
  x[i].style.border = "10px solid red";
}

自分で試してみる

例 8

<div>要素内のすべての<h2>、<div>、<span>要素の背景色を設定:

// id="myDIV"の要素(div)を取得し、<div>内のすべての<h2>、<div>、<span>要素を取得
var x = document.getElementById("myDIV").querySelectorAll("h2, div, span");
// for ループを作成し、<div>内のすべての<h2>、<div>、<span>要素の背景色を設定
var i;
for (i = 0; i < x.length; i++) {
  x[i].style.backgroundColor = "red";
}

自分で試してみる

ブラウザのサポート

この表の数字は、このメソッドを完全にサポートする最初のブラウザのバージョンを示しています。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
4.0 9.0 3.5 3.2 10.0

注意:Internet Explorer 8 は CSS2 セレクタをサポートしています。IE9 以降のバージョンでは CSS3 もサポートされています。

関連ページ

CSS タイプ:CSS セレクタ

CSS 参考マニュアル:CSS セレクタ リファレンスマニュアル

JavaScript タイプ:JavaScript HTML DOM ノードリスト

JavaScript 参考マニュアル:element.querySelector()

HTML DOM 参考マニュアル:document.querySelectorAll()