document.createDocumentFragment是个好方法
onclick事件执行不了,是因为你的字符串组织有问题var string = '<div style="background:red;width:300px;"><button onclick=test()>HelloWorld</button></div>';

解决方案 »

  1.   

    楼上,还以为函数要作为变量传呢,谢谢了
    但是有什么方法解决使用大量createElement带来的麻烦吗?
      

  2.   

    document.createDocumentFragment的用法是这样的:<body><div id="div1"></div>
    </body>
    <script language="JavaScript">
    <!--
    function test() {
    alert('test');
    }var string = "<div style='background:red;width:300px;'><button onclick='test()'>HelloWorld</button></div>";
    window.onload=function(){
    var div1 = document.getElementById("div1");
    var txtNode = document.createDocumentFragment();
    txtNode.appendChild(document.createElement("<div></div>"));
    txtNode.firstChild.outerHTML = string;

    div1.appendChild(txtNode); //div1.innerHTML = string;
    }
    //-->
    </script>
      

  3.   

    看来还是没有代替 createElement 的方法
      

  4.   

    你想追加字符串到innerHTML得后面,和innerHTML+="string..."又有什么区别呢?