2
0

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 5 years have passed since last update.

classやnameの属性取得によってテキストボックスへ値を代入する方法

Last updated at Posted at 2019-10-30

経緯

Webフォームのテストで毎回手入力するのが面倒だったので、1回実行すれば要素を取得して必要な項目を全部埋めてくれるスクリプトを作ろうと考えた。

idは単数系 / classやnameは複数形

てっきりgetElementByIdのようにclassやname属性についても『getElementBy〜』で要素を取得できるのかと思ったがサジェストされないことに気づく。
単数系と複数形の違いは何なのだろうと思い調べたらこんな記事を見つけた。

class属性とid属性の役割の違い
idが一意であるのに対して、classは再利用前提の考え方とのこと。
デザイナーが二つをどう使い分けてるのか理解できて納得。

複数形なら配列として各要素を取得する

そして本題。
class属性(nameも同様)の要素は複数形が基本であることから、『配列』として全体を見る必要があることが分かる。一度しか登場しない属性であっても下記のような記述でないといけない。

document.getElementsByClassName("hoge")[0].value = "fuga";
document.getElementsByName("foo")[0].value = "bar";

同じclassやnameが画面内に複数回登場するなら配列のインデックスを変えるだけ。
ラジオボタンやプルダウンでも要素を取得してあとはcheckedやselectedIndexを呼び出せばいいだけ。

他にもquerySelectorやquerySelectorAllっていうjQueryライクな汎用性の高いメソッドもあるそうだからそっちも使ってみよ。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?