今回は私が気づくまでに随分と時間がかかってしまった(情けない)内容をご紹介します。

JavaScriptでエレメントを取得する際にはIDとNAMEのいずれかで指定することができますが、この関数、最後のIdとNameだけの違いかと思いきや、その前のElementとElementsも違っているんです。私はこれに気づくまでにものすごく時間がかかってしまい、Chromeのデバッガでステップ実行してみたり、なんでエレメントが取れないんだ!??と悩みまくりました。IdとNameだけの違いなのに、なんでElementのほうまで変えてるんだ!とグチを言っていた記憶があります。

getElementById
getElementsByName

でも、今考えてみると、ElementとElementsでNameのほうを複数形にしているのは当たり前です。

HTMLにおいて、idはユニークな存在でなければならないのに対して、nameは複数同じものが存在しても良い(例えば、formなど)のですから。

IdをNameに変えればOKという安易な考え方をしているとハマる罠でした。皆さんもお気をつけください。