- 締切済み
.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ページはフレーム内で表示しています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Ogre7077
- ベストアンサー率65% (170/258)
ブラウザによる id/name の混同は悪習ではありますが、 互換性の為に今後も残る可能性がありますので、 ちょっとした契機でバグが発生する要因として、 これからも生き残っていくのでしょう。 残念ながら なので、この手の対策として * id と name で被らない様な名前付けをする を今後も心がけたほうが良いでしょう。 そもそも目的の異なる属性なので被らない筈です。 <input type=text name=hoge id=hoge> なんて実装は論外ですよ!
- play_with_you
- ベストアンサー率37% (112/301)
ググりゃ分かることですが、IE7以前のブラウザの誤動作です。 https://www.google.com/search?q=getElementById+name 今時IE7以前が入ってるのは「会社のだからアップデートできない古いPC」くらい。一般の人は大抵8以降ですから、気にする必要はありません。