...
<div id="did">
</div>
..............<script type="text/script">
 var tb = document.createElement("TABLE");
 tb.innerHTML="<tr><td>dfsfds</td></tr>";
document.getElementById('did').appendChild(tb);</script>
...................................为什么动态生成的对象,不能往里面加innerHTML?

解决方案 »

  1.   

    <script type="text/javascript">
    你太马虎了
      

  2.   

    不是这个问题。我临时写的代码。
    我把innerHTML内容,改成创建一个tr对象就可以挂在上面了。
    ----------------------------------------------------------
    我是创建了一个对象
    function i4xls (xx,xxx){
    this.xxx=xxx........}i4xls.prototype.buildXLSTable = function (){
      var did = document.getElementById('divid');
      var tb = document.createElement("TABLE");
      tb.innerHTML="<tr><td>fdsafdsfds</td></tr>";    //IE8报错 ,发生未知错误! 如果创建createElement("TR");tb.appendChild(trobj); 就不会报错。
      did.appendChild(tb);    
      
    }
    ///////////////////////// 不知道为什么? 请高手指点。
      

  3.   

    动态生成的对象没有绑定事件,要在动态生成对象后给对象绑定事件,但这样会造成代码的大量冗余
    jquery有个插件livequery可以解决这种代码的冗余
      

  4.   

    如果大量CreateElement对象会给性能上带来问题吗?
    我正在做一个:批量EXCEL数据导入到HTML Table (动态生成),然后提交表单的程序。
    因为所有表格的行和列都未知!
    所以只能JS 动态读取EXCEL的数据,然后动态生成表格和表单控件。
    有没有什么更好的办法?非常感谢大家!
      

  5.   

    哦,这个是IE浏览器appendChild()的BUG,主要是子节点更改父节点结构的问题,你判断一下,如果是IE,这样处理:
    if (!document.all){
      var did = document.getElementById('divid');
      var tb = document.createElement("TABLE");
      tb.innerHTML="<tr><td>fdsafdsfds</td></tr>";
      did.appendChild(tb);   
    }
    else{
      document.getElementById('did').outerHTML="<TABLE><tr><td>dfsfds</td></tr></TABLE>";
    }
      

  6.   

    else{
      document.getElementById('did').innerHTML="<TABLE><tr><td>dfsfds</td></tr></TABLE>";
    }
      

  7.   

    关注下,
    楼上的方法可能不行哦,
    tr,td都要循环,
    table可是只要1次就行
      

  8.   

    我是用inertRow和insertcell做的,
    楼主可以在div里面先写好table,
    然后JS找到table后,inertRow()和insertCell()