• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:querySelectorAll)

querySelectorAllの書き方についての疑問

このQ&Aのポイント
  • javascript初心者の方がquerySelectorAllの書き方について困っています。document.querySelector('target')のような書き方を多く見かけますが、たまに後ろに[]が付いている書き方があります。これはどのような意味なのでしょうか?
  • また、htmlの部分で更新日を表示するために<p>タグ内に<time>タグがあり、js部分ではdocument.querySelectorAll('time')[0]となっています。これは何を意味しているのでしょうか?
  • さらに、htmlの部分で広告のイメージを表示するために<aside>タグ内に<div>タグがあり、js部分ではdocument.querySelectorAll('aside div')[0]となっています。これは具体的に何をしているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

querySelector はセレクター文字列で一致する最初の要素にマッチしますが、querySelectorAll はセレクター文字列にマッチします。 querySelectorAll はマッチした全ての要素を NodeList として返します。 NodeList は配列のようなオブジェクトとなり、配列のように添え字を付けることで要素ノードを取得できます。 var aDiv = document.querySelectorAll("aside div")[0]; // "aside div" に一致する NodeList の初めの要素を返す。document.querySelector("aside div") と同じ返り値。 http://www.w3.org/TR/selectors-api/#queryselectorall https://developer.mozilla.org/ja/docs/DOM/Document.querySelector https://developer.mozilla.org/ja/docs/DOM/Document.querySelectorAll

naonao321
質問者

お礼

配列になるから括弧が必然だったのですね。ありがとうございました。

その他の回答 (1)

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

#1 です。下記の通り、訂正します。 × querySelector はセレクター文字列で一致する最初の要素にマッチしますが、querySelectorAll はセレクター文字列にマッチします。 ○ querySelector はセレクター文字列で一致する最初の要素にマッチしますが、querySelectorAll はセレクター文字列に一致する全ての要素にマッチします。 ついでに補足しておくと、NodeList は document.querySelectorAll("aside div").item(0) のように書くこともでき、一応こちらが正式な書き方となります。 # 配列ライクな書き方のほうが速いし短いので、ほとんどの方はこの書き方を採用しませんが…。

naonao321
質問者

お礼

なるほどよくわかりました。ありがとうございます。

関連するQ&A