おまけ - JavaScript による DOM 操作 - 属性の取得
IE のバグ?を確認するコードです。記憶を頼りに適当に書いているので、動かないかも。
<html> <head> <script> function test() { var element = document.getElementById("w"); alert("element.getAttribute(\"checked\"): "+element.getAttribute("checked")); var attributes = element.attributes; var attributesStr = ""; for (var i=0; i<attributes.length; i++) { var attr = attributes.item(i); attributesStr += attr.nodeName + "=" + attr.nodeValue+" "; } alert("attributes: "+attributesStr); } </script> </head> <body> <button onclick="test();">テスト</button> <form> <input type="checkbox" id="w" value="ai"/>復帰待ち </form> </body> </html>
上記 HTML を表示し、チェックボックスにチェックした後に [テスト] ボタンを押下すると、getAttribute("checked") の結果は true が取得されるにもかかわらず、attributes プロパティによって、属性値を列挙した場合は、"CHECKED" 属性*1の値は false になっています。
この辺りが、 Node#cloneNode(true) で完全に複製を作成してくれないことと、関係しているのかと思います。
*1:checked 属性ではなく、CHECKED 属性です