innerHTMLを使用してレイヤのHTMLを設定した後にダイアログを表示する。IEでは「1」と出るが、Firefoxでは「2」。これが常識なのかどうかは知らないけど、今日知ったので書いとく。
表示としては上から順番になるので、配列として扱った場合は、innerHTMLで設定した部分が配列に先頭になるのかと考えてた。事実、IEではそのように動く。一方、Firefoxでは、恐らく「後から設定されたものが後にくる」ということみたい。なんか言い方が変だけど。
<html> <head> <title>Test Page</title> <script type="text/javascript"> <!-- function test() { document.getElementById("target").innerHTML = "<input type='text' name='v_txt' value='1'>"; alert(document.frm.v_txt[0].value); } //--> </script> </head> <body> <form name="frm"> <div id="target"> <input type="text" name="v_txt" value=""><br/> </div> <input type="text" name="v_txt" value="2"><br/> <input type="button" name="btn" value="test" onclick="test();"><br/> </form> </body> </html>
しかしなんだこの検証。気持ち悪い。