IE9でdocument.getElementsByNameでdiv要素が取れない件
http://oshiete.goo.ne.jp/qa/3598682.htmlIE9とかいう香具師ではdocument.getElementsByNameでdiv要素が取れないらしい。
なぜならdiv要素にはname属性がないから。
IE9はクソ。
いやたぶんこれIE9がクソなのではなくIE9だけ正しい。ので融通が利かないと言い換えます。
ダメなやつ
【HTML】
<div id="asdf1" name="asdf">
ほにゃらら
</div>
<div id="asdf2" name="asdf">
ほにゃらら
</div>
【javascript】
var len = document.getElementsByName("asdf");
if(var i = 1; i <= len; i++){
document.getElementById("asdf" + i).なにやら;
}
回避したコード(邪道)
【HTML】
<form name="asdf_wrap" style="margin:0px; padding:0px;">
<div id="asdf1" name="asdf">
ほにゃらら
</div>
</form>
<form name="asdf_wrap" style="margin:0px; padding:0px;">
<div id="asdf2" name="asdf">
ほにゃらら
</div>
</form>
【javascript】
var len = document.getElementsByName("asdf").length || document.getElementsByName('asdf_wrap').length;
if(var i = 1; i <= len; i++){
document.getElementById("asdf" + i).なにやら;
}要はname属性を持ち、かつなるたけ見た目に影響が出ないようなやつで囲ってそれで個数を判断。formを選びました。
邪道だがまあなんとか。一応メモとして記事にしたが、今後この情報を活用することはないでしょう。