JavaScript HTML DOM ノードリスト

コース推薦:

HTML DOM NodeList オブジェクト NodeList

オブジェクトは、ドキュメントから抽出されたノードリスト(集合)です。

NodeListオブジェクトとHTMLCollectionオブジェクトはほぼ同じです。 getElementsByClassName() メソッド、一部の(古い)ブラウザではHTMLCollectionオブジェクトではなくNodeListオブジェクトを返します。

すべてのブラウザは、 childNodes 属性がNodeListオブジェクトを返します。

ほとんどのブラウザは、 querySelectorAll() メソッドはNodeListオブジェクトを返します。

以下のコードは、ドキュメント内のすべての <p> ノードを選択します:

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

}

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

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

y = myNodeList[1];

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

HTML DOM ノードリストの長さ

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

var myNodelist = document.querySelectorAll("p");
document.getElementById("demo").innerHTML = myNodelist.length;

}

例説明:

  • すべての <p> 要素のリストを作成
  • リストの長さを表示

length 属性は、ノードリスト内のノードを巡回する際に非常に役立ちます:

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

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

}

実際に試してみる

HTMLCollection と NodeList の違い

HTMLCollection(前の章)は HTML エレメントのコレクションです。

NodeList はドキュメントノードのコレクションです。

HTMLCollection と NodeList オブジェクトは、クラス配列のオブジェクトリスト(コレクション)です。

それらはすべて定義リスト(コレクション)中の項目数を length 属性。

それらはすべてインデックス(0、1、2、3、4、...)を使用して各項目にアクセスできます。

HTMLCollection プロパティにアクセスするには、その名前、id またはインデックス番号を使用できます。

NodeList プロパティにアクセスするには、そのインデックス番号を使用する必要があります。

属性ノードやテキストノードを含むことができるのは NodeList オブジェクトのみです。

ノードリストは配列ではありません!

ノード配列は配列のように見えますが、実際にはありません。

ノードリストを配列のように遍历し、そのノードを参照することができます。

ただし、ノードリストに対して配列メソッドを使用することはできません、例えば valueOf()push()pop() または join()