Javascript
を使って、任意のHTML要素にアクセスする方法です。
##同じクラスのinput(入力値)を取得
例えば、このようなコンタクトフォームがあるとします。
index.html
<h2>お問い合わせフォーム</h2>
<form class="contactForm" action="" method="post">
<table>
<tr>
<th><label>お名前</label></th>
<td><input class="item" type="text" name="name" value="タンジロウ"></td>
</tr>
<tr>
<th><label>メールアドレス</label></th>
<td><input class="item" type="email" name="email" value="kisatsu@gmail.com"></td>
</tr>
<tr>
<th><label>電話番号</label></th>
<td><input class="item" type="tel" name="tel" value="090-1234-5678"></td>
</tr>
<tr>
<th><label>お問い合わせ内容</label></th>
<td><textarea class="item" name="message">お問い合わせ内容テキスト</textarea></td>
</tr>
<tr>
<td><input type="submit" id="submitBtn" name="btn_confirm" value="送信"></td>
</tr>
</form>
</table>
全ての入力値に適切な値が入っているかを確認する為に、同じクラスitem
をキーに要素を取得します。
##getElementsByClassName
getElementsByClassName
は同じクラス名を検索して、返り値に配列風のHTMLCollection
を返します。elementにs
がついていることに注意してください。
main.js
const ItemList = document.getElementsByClassName("item");
for(let i = 0; i < ItemList.length; i++) {
console.log(ItemList.item(i).value);
}
コンソールの出力結果
コンソールの出力結果です。Item
にアクセスすることで好きな値をチェックすることができます。
クラス名を複数指定すると、and
指定となり両方のクラスを持つ要素を取得できます。
document.getElementsByClassName("item email")
HTMLCollectionを配列に変換
配列に変換することで、配列のメソッドが使えるようにすることもできます。用途によって、使い分けましょう。
main.js
const ItemArray = Array.prototype.slice.call(ItemList);
ItemArray.forEach(function(array) {
console.log(array);
});