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()
。