getElementByIdとgetElementsByNameの違い

getElementByIdとgetElementsByNameを間違って使ってしまったので、その違いをメモしておく。
getElementById(id)はid 属性で指定した名前で要素を参照する。
getElementsByName(name)はname 属性で指定した名前で要素リストを参照する。

HTMLでid=”xxx”は1個だが、name=”xxxx”は複数定義できる。そのため、getElementsByName(name)では複数の要素を配列で取得できるようになっている。(getElementsのように複数形の場合は要素リストが得られる)

サンプル

/* getElementByIdの場合  */
var id = document.getElementById('id1');
id.value /* 変数で扱う */

/* getElementsByName */
var name = document.getElementsByName('name1');
name[0].value   /* 配列で扱う */