为什么给table一个id如“newTable”,再在js呆用#(“ newTable”).innerHTML去加表的行和列怎么不行呀?
如这样:articleStr += "<tr><td width='70%'><img src='../../images/d6.gif' width='16' height='16'><a href='showDataArticle.html?id=" + 
     ViewDataSupport.map.id + "' target='_blank'>" + ViewDataSupport.map.title +
     "</a>"+pointStr + ViewDataSupport.map.author + 
    "</td> <td width='30%'> <a href='../addData/addData.html?id="+ViewDataSupport.map.id+"'>修改</a>|"  
    +"<a href='###' onclick='ViewDataSupport.removeConfirm("+ViewDataSupport.map.id+")'>删除</a></td></tr>";
 
$("indexData").innerHTML = articleStr ;这样在FF里正常为什么IE就不行

解决方案 »

  1.   

    $("indexData").innerHTML ="<tbody>"+ articleStr+"</tbody>"; 
      

  2.   

    http://www.86master.com/wyzz/4/2009/24305.html
      

  3.   

    父容器改为span或者div之类,把table标签的内容一起加到articleStr变量中,最后再设置span或者div的innerHTMLie浏览器下直接设置table的innerHTML或者tbody的innerHTML会出现错误。
      

  4.   

    innerHTML只是一个简便的操作,但并不是完全等同于写HTML代码,table标签就是个特例。好象select也一样。
    所以还是用DOM来操作吧,比如appendChild之类的操作
      

  5.   

    使用标准的DOM来操作吧,innerHTML这些东西少用为好!
    var newRow=document.createElement("tr");
    document.getElementById("newTable").appendChild(newRow);
      

  6.   

    $("indexData") $是自己写的一个函数吧用jquery就直接可以写了$("#indexData").html("<tr><td></td></tr>");table的innerHTML属性在IE里是只读的不能赋值
      

  7.   

    IE里面创建表格初始时可以用innerHTNL,但是要给动态增加行就要用到appendChild
      

  8.   


    <html>
    <head>
    <title></title>
    <script type="text/javascript">
    var num=1;//行的初始id
    var rowNum=5;//一次添加的个数
    function $(elem)
    {
        return typeof elem=="string"?document.getElementById(elem):elem;
    }
    function addText()
    {
        var tab=$("tab"); 
        var row=tab.insertRow(-1); 
        row.id="row"+num; 
        var cell1=row.insertCell(-1); 
        cell1.innerHTML="<INPUT type='file' id='file"+num+"'>";    
        num++; 
    }
    function init_table()
    {
        for(var i=0;i<5;i++)
        {
            addText();
        }
    }
    </script>
    </head>
    <body onload="init_table();">
    <table id="tab" border=1 width=200px >
    </table>
    <input type="button" onclick="addText()" value="add">
    </body>
    </html>
      

  9.   

    table标签本身不支持文本内容,他只有子标签如tbody或者直接tr,要写文本内容只能在td中,另articleStr中属于文本内容而不是DOM对象!
      

  10.   

     各位的意见也我学习了许多,不过我现在用insertRow()和insertCell()就兼容两种浏览器喽。
      

  11.   

    The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR. The property has no default value.帮助中对innerHTML是这样写的
      

  12.   

    不用想 兼容性问题
    你就写一个IE能识别的操作方式即可
    我同意上面8楼的回答  DOM方式操作最佳
      

  13.   

    晕,那么多人回答,都不说重点标准的W3C里面:table,tbody,tr的innerHTML为只读要动态添加,并且跨所有浏览器,请使用Dom操作var tr = document.createElement("tr");
    var td = document.createElement("td");
    td.className = "class名字";
    td.innerHTML = "<img src=''/>";//td可以用innerHTML
    tr.appendChild(td);
    然后是table或者tbody.appendChild(tr);
      

  14.   

    同意!用JS操作table只能用W3C的Dom方法
      

  15.   

    w3c的table dom api有简单的方法不用你这么麻烦:http://www.w3.org/2003/01/dom2-javadoc/org/w3c/dom/html2/HTMLTableElement.html