今回は私が気づくまでに随分と時間がかかってしまった(情けない)内容をご紹介します。
JavaScriptでエレメントを取得する際にはIDとNAMEのいずれかで指定することができますが、この関数、最後のIdとNameだけの違いかと思いきや、その前のElementとElementsも違っているんです。私はこれに気づくまでにものすごく時間がかかってしまい、Chromeのデバッガでステップ実行してみたり、なんでエレメントが取れないんだ!??と悩みまくりました。IdとNameだけの違いなのに、なんでElementのほうまで変えてるんだ!とグチを言っていた記憶があります。
getElementById
getElementsByName
でも、今考えてみると、ElementとElementsでNameのほうを複数形にしているのは当たり前です。
HTMLにおいて、idはユニークな存在でなければならないのに対して、nameは複数同じものが存在しても良い(例えば、formなど)のですから。
IdをNameに変えればOKという安易な考え方をしているとハマる罠でした。皆さんもお気をつけください。
- 投稿タグ
- JavaScript