1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javascriptで同じクラスを持つ複数の入力値を取得する

Last updated at Posted at 2020-10-25

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にアクセスすることで好きな値をチェックすることができます。
mojikyo45_640-2.gif
クラス名を複数指定すると、and指定となり両方のクラスを持つ要素を取得できます。

document.getElementsByClassName("item email")

HTMLCollectionを配列に変換

配列に変換することで、配列のメソッドが使えるようにすることもできます。用途によって、使い分けましょう。

main.js
const ItemArray = Array.prototype.slice.call(ItemList);

ItemArray.forEach(function(array) {
    console.log(array);
});

コンソールの出力結果

mojikyo45_640-2.gif
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?