• 締切済み

.getElementByIdでnameを拾う?

javascriptで.getElementByIdでなぜかname属性を拾ってしまいます。 <script> function gets() { aa = document.getElementById('idid').innerHTML; bb=document.getElementById('idid').tagName; alert(aa+bb); } </script> <input type="submit" value="ボタン" name="idid" onclick="gets();"><span id="idid">ああああ</span> 上記は大分省略してえいますが、このようなコードで aaに「ああああ」が代入されず、bbに「INPUT」が代入されます。 通常ならアラーとは「ああああSPAN」のはずが「INPUT」になってしまいます。 どのような理由が考えられるでしょうか。 ちなみに、HTMLページはフレーム内で表示しています。

みんなの回答

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

ブラウザによる id/name の混同は悪習ではありますが、 互換性の為に今後も残る可能性がありますので、 ちょっとした契機でバグが発生する要因として、 これからも生き残っていくのでしょう。 残念ながら なので、この手の対策として * id と name で被らない様な名前付けをする を今後も心がけたほうが良いでしょう。 そもそも目的の異なる属性なので被らない筈です。 <input type=text name=hoge id=hoge> なんて実装は論外ですよ!

回答No.1

ググりゃ分かることですが、IE7以前のブラウザの誤動作です。 https://www.google.com/search?q=getElementById+name 今時IE7以前が入ってるのは「会社のだからアップデートできない古いPC」くらい。一般の人は大抵8以降ですから、気にする必要はありません。

関連するQ&A