おまけ - 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 属性です