getElementsByName [JavaScript]
◆document.getElementsByName メソッド
collection = document.getElementsByName(name);
nodelist = document.getElementsByName(name);
指定された DOM(Document Object Model) 形式のドキュメント document から、name プロパティが引数(文字列)name であるエレメントに対する Element クラス(またはそのサブクラス)のコレクション collection、またはノードリスト nodelist を返します。
該当するインスタンスが存在しない場合、null ではなく、空のコレクション collection、または空のノードリスト nodelist を返します。
HTML では、ボタンやテキストボックスといったコントロールは、そのエレメントごとに name プロパティで「名前」を付けることができますが、name プロパティはひとつのドキュメント内でユニークである必要はありません。ひとつのドキュメント内で、複数のエレメントで name プロパティが重複しても、大丈夫なわけです。
従って、document.getElementsByName(name) メソッドは、指定された name プロパティを持つコントロール群を、一度に返せるような戻り値を返します。
だから、ユニークな id プロパティでエレメントを探すメソッドが getElementById(単数形)なのに対して、name プロパティでエレメントを探すこのメソッドの名前は getElementsByName(複数形)なんですね。
問題の戻り値のインスタンスなんですが、ブラウザ依存です(またかよ・・・・・・)。
Internet Explorer 8、Firefox 3.6.13 では、戻り値が HTMLCollection というオブジェクト インスタンスで返ってきます。
一方、Opera 11.00、Safari 5.0.3、Google Chrome 8.0.552.224 では、戻り値が NodeList というオブジェクト インスタンスで返ってきます。
いずれ HTMLCollection も NodeList もエントリーにしますが、あんまり便利な代物じゃありません。