JavaScript - getElementsByName()の使い方

JavaScriptで「name属性」から該当要素を取得する場合は、 getElementsByName()メソッドを使います。

複数の要素を取得できる可能性があるため 「Elements」と複数形になっています。

戻り値はNodeListオブジェクトです。

getElementsByName()の構文


document.getElementsByName('name')

name = name属性値

サンプルコード

HTML

name属性値が「greeting」の入力ボックスを2つ用意します。


<form>
	<input type="text" name="greeting" value="hello"/>
	<input type="text" name="greeting" value="world"/>
</form>

JavaScript

name属性「greeting」を指定し、入力ボックスの値を表示します。


var elems = document.getElementsByName('greeting');

for (var i = 0; i < elems.length; i++){
	console.log(elems[i].value);
}

// 実行結果 --------

hello
world

該当name属性がない場合

先程と同じHTMLで、存在しないname属性を指定してみます。


var elems = document.getElementsByName('hoge');

for (var i = 0; i < elems.length; i++){
	console.log(elems[i].value);
}

console.log(elems);

// 実行結果 ----

NodeList []

NodeList [] と表示されているように、 空のNodeListオブジェクトを返します。

getElementsByName()を使うケース

一般的に、getElementsByName()を使うのは、 フォーム内の同じname属性をもつフォーム部品の要素を取得するケースになります。

ですからgetElementById()、getElementsByTagName()、getElementsByClassName() などに比べると使う機会が限定されるでしょう。