DOMで生成したinput要素のname属性がセットされない

DOMで生成したinput要素をgetElementsByNameでとろうとしたらとれない。
なんでじゃーって調べたらIE6のバグらしい。
じゃあ、IE7じゃどうだろうか?と思って確認してみた。
http://www.daisun-labs.org/test/input_name.html
IEでみてね。

結果は、、、

<input>

やっぱりName属性は取れてない。type属性は指定しないとtextになるから設定されない
ようだ。
IE6に限らずのようだ。


じゃあ、どう解決したらいいか?

DOMで生成している部分を

var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "text1");
divTest1.appendChild(input);

innerHTMLをつかって

divTest1.innerHTML = '<input type="text" name="text1" />';

書く。

解決編ソース
http://www.daisun-labs.org/test/input_name2.html

そうすると、ちゃんと

<input name="text1">

となる
innerHTMLって便利だねー。

以下、余談。
これをやってる中で、
FireFoxにinnerTextがないことをすっかり忘れていて余計な時間を取られてしまった。
FireFoxはtextContentだね。忘れないようにしよ。