代码如下:
var t=document.getElementById("t");
var b=document.createElement("tbody");
var ti=document.createElement("tr");
ti.innerHTML="<td>一</td><td>二</td><td>三</td><td>四</td><td>五</td>";
b.appendChild(ti);
t.appendChild(b);在Chrome,FF中,td是五个,文字分别在五个td中。
但是在IE8下,td是一个,文字都显示在一个td中。难道是创建td元素,再挂接元素么。 为什么写到innerHTML中没有效果呢?

解决方案 »

  1.   

    刚才度娘了一下,IE不支持对tr元素的innerHTML操作,但是支持td元素的innerHTML操作
      

  2.   

    http://hi.baidu.com/fbdfp/blog/item/acd6f42ab6932280023bf6da.html 看看这个吧。。
      

  3.   

    楼主为什么不直接用innerHTML="<table>....</table>";
    整个table都用innerHTML呢。IE有些地方有BUG的,select也会这样
      

  4.   

    我的ff3.6也是一个。
    如果ti.innerHTML="<td>一</td><td>二</td><td>三</td><td>四</td><td>五</td>";
    放到最后那就是五个
      

  5.   

    为什么不用jquery呢?
    $("#t").html( "<td>一</td><td>二</td><td>三</td><td>四</td><td>五</td>" );兼容性极好, 没有任何的IE/FF的兼容性问题. 
      

  6.   


    我看你代码
    var t=document.getElementById("t");
    是获取表格元素吧?
    然后你创建了tbody和tr,
    然后再append进去?
    为什么不直接
    var html = "<tbody><tr><td></td></tr></tbody>";
    t.innerHTML = html;
    html里面的td也是能动态添加的啊