HTMLCollection
HTMLCollection
インターフェイスは、 (文書内の順序における) 要素の一般的なコレクション (arguments
のような配列風のオブジェクト) を表し、リストから選択するためのメソッドとプロパティを提供します。
メモ: このインターフェイスは歴史的な理由で HTMLCollection
と呼ばれています (現代の DOM より前は、このインターフェイスを実装するコレクションが、アイテムとして HTML 要素しか持てませんでした)。
HTML DOM 内の HTMLCollection
は生きて (live) います。それらは元になった document が変更された時点で自動的に更新されます。
プロパティ
HTMLCollection.length
(en-US) 読取専用-
collection 内のアイテム数を返します。
メソッド
HTMLCollection.item()
(en-US)-
リスト内の指定された
index
(先頭はゼロ) 位置にある特定のノードを返します。index
が範囲外ならnull
を返します。 これはcollection[i]
のアクセスの代替手段です (こちらはi
が範囲外の場合はundefined
を返します)。これは主に、 JavaScript 以外の DOM 実装で有用です。 HTMLCollection.namedItem()
(en-US)-
name
で指定した文字列に ID、または代替として name が一致するノードを返します。name とのマッチングは HTML 限定で、参照した要素がname
属性をサポートする場合に限って、最終手段として行われます。指定した名前のノードがない場合はnull
を返します。 これはcollection[name]
のアクセスの代替手段です (こちらはname
が存在しない場合、undefined
を返します)。これは主に、 JavaScript 以外の DOM 実装で有用です。
JavaScript での使用法
HTMLCollection
は名前やインデックスでも、自身のメンバーをプロパティとして直接公開します。HTML の ID は :
や .
を有効な文字として含むことができ、これらはプロパティとしてアクセスするために角括弧構文を使用しなければなりません。現在の HTMLCollections
は純粋な数値の ID を認識しません。このような ID は配列へのアクセスと競合しますが、HTML5 では許容しています。
例えば、文書内に 1 つの <form>
要素があるものと仮定してください。その id
は myForm
です。
var elem1, elem2;
// document.forms は HTMLCollection
elem1 = document.forms[0];
elem2 = document.forms.item(0);
alert(elem1 === elem2); // 表示: "true"
elem1 = document.forms.myForm;
elem2 = document.forms.namedItem("myForm");
alert(elem1 === elem2); // 表示: "true"
elem1 = document.forms["named.item.with.periods"];
仕様書
Specification |
---|
DOM Standard # interface-htmlcollection |
ブラウザーの互換性
BCD tables only load in the browser