次の説明は、このページからの引用です。
getElementsByClassName()メソッドは、指定されたクラス名を持つドキュメント内のすべての要素のコレクションをNodeListオブジェクトとして返します。
NodeListオブジェクトはノードのコレクションを表します。ノードにはインデックス番号でアクセスできます。インデックスは0から始まります。
ヒント:NodeListオブジェクトのlengthプロパティを使用して、指定されたクラス名を持つ要素の数を決定し、すべての要素をループして必要な情報を抽出できます。
そのため、パラメーターとしてgetElementsByClassName
クラス名を受け入れます。
これがHTML本文の場合:
<div id="first" class="menuItem"></div>
<div id="second" class="menuItem"></div>
<div id="third" class="menuItem"></div>
<div id="footer"></div>
次に、指定されたクラス名と一致するため、var menuItems = document.getElementsByClassName('menuItem')
上位3つの<div>
のコレクション(配列ではない)を返します。
次に、このノード(<div>
この場合はs)コレクションを次のように反復できます。
for (var menuItemIndex = 0 ; menuItems.length ; menuItemIndex ++) {
var currentMenuItem = menuItems[menuItemIndex];
// do stuff with currentMenuItem as a node.
}
要素とノードの違いの詳細については、この投稿を参照してください。
getElementsByClassName()
とおりです。複数を意味し、一方getElementById()
、単数要素の項目を意味します。