HTML DOM NodeList 参考マニュアル

NodeList

NodeListはノードオブジェクトの配列に似た集合(リスト)です。

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

length属性NodeList内のノード数を返します。

NodeList と HTMLCollection

NodeList は HTMLCollection ほぼ同じです。

ページ下の説明を参照してください。

誰が NodeList を返しますか?

childNodes 属性

querySelectorAll() メソッド

getElementsByName() メソッド

属性とメソッド

NodeList上で以下の属性とメソッドを使用できます:

名前 説明
entries() リストからキー/値対を持つイテレータを返します。
forEach() リストの各ノードに対してコールバック関数を実行します。
item() 指定されたインデックスのノードを返します。
keys() リストのキーを使用してイテレータを返します。
length NodeList内のノード数を返します。
values() リストの値を使用してイテレータを返します。

インスタンス

ドキュメント内のすべての <p> ノード:

const myNodeList = document.querySelectorAll("p");

NodeListの要素はインデックス番号でアクセスできます。

第2つの <p> ノードにアクセスする場合は、以下のように書きます:

myNodeList[1]

自分で試してみてください

注意:インデックスは0から始まります。

HTML DOM ノードリスト長

length 属性はノードリスト内のノードの数を定義します:

例 1

myNodelist.length

自分で試してみてください

ノードリストのノードを巡る必要がある場合、length 属性は非常に役立ちます:

例 2

変更するノードリスト中のすべての <p> 要素の色:

const myNodelist = document.querySelectorAll("p");
for (let i = 0; i < myNodelist.length; i++) {
  myNodelist[i].style.color = "red";
}

自分で試してみてください

配列ではありません

NodeListは配列ではありません!

NodeListは配列のように見えるかもしれませんが、実際にはそうではありません。

NodeListを遍历し、そのノードをインデックスで参照して使用できます。

ただし、NodeList上ではpush()、pop()、join()などのArrayメソッドを使用することはできません。

HTMLCollectionとNodeListの違い

NodeListHTMLcollection 非常に似ています。

どちらもドキュメントから抽出されたノード(要素)で構成された类似配列の集合(リスト)です。ノードはインデックス番号を通じてアクセスできます。インデックスは0から始まります。

どちらも length属性であり、リスト(コレクション)内の要素の数を返します。

HTMLCollectionはドキュメント要素の集合です。

NodeListはドキュメントノード(要素ノード、属性ノード、テキストノード)の集合。

HTMLCollectionの項目は、その名前、id、またはインデックス番号を通じてアクセスできます。

NodeListの項目は、そのインデックス番号を通じてのみアクセスできます。

HTMLCollectionは常に、リアルタイムのコレクションです。例えば、<li>要素がDOM内のリストに追加された場合、HTMLCollection内のリストも変更されます。

NodeListは通常、静的なコレクション。例えば、<li>要素がDOM内のリストに追加された場合、NodeList内のリストは変更されません。

getElementsByClassName() および getElementsByTagName() メソッドはリアルタイムの HTMLCollection を返します。

querySelectorAll() メソッドは静的な NodeList を返します。

childNodes 属性はリアルタイムの NodeList を返します。

リアルタイムのノードリスト

ある場合には、NodeList はリアルタイムの:DOM 内の変更は NodeList を更新します。

childNodes メソッドはリアルタイムの NodeList を返します。