row.innerHTML = "<TD>############# </TD>"; 

解决方案 »

  1.   

    不好意思,刚才手误,我写的是这样的row.innerHTML = " <TD>############# </TD>"; 没有作用,这句执行后,下面的alert(row.innerHTML); 就不执行了
      

  2.   

    function insert2tbl(x){
           R=tbl.insertRow();
           C=R.insertCell();
           C.innerHTML="<td width='18%'><div align=center><input type='checkbox' checked /></div>      </td>";
           C=R.insertCell() ;
           C.innerHTML="<td width='82%' id='td1'>"+x+"</td>" ;
          
    }
      

  3.   

    在IE里是无法对table和tr的DOM引用对象的innerHTML赋值的
    var row = table.insertRow(table.rows.length-1);
    var cell = row.insertCell(-1);  //-1是加在末尾,IE可以忽略参数,但是FF及其它浏览器不能忽略,为了兼容请写上-1吧
    cell.appendChild(document.createTextNode("TD的内容"));
    //上面的那句也可以换成cell.innerHTML = "TD的内容";
      

  4.   

    innerHTML才是非DOM标准的东西,只不过多数浏览器都支持它而已.
    Mozilla仅支持innerHTML而不支持innerText
      

  5.   

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table id="tb1" border="1"><tr id="tr1"><td>abc</td></tr></table>
            <br />
            <br />
            <input id="Button1" type="button" value="button" onclick="add()" /></div>
        </form>
    </body>
    </html>
    <script>
    function add()
    {
    var tb=document.getElementById("tr1");
    var row=document.createElement("tr");
    var col=document.createElement("td");
    col.innerHTML="<TD>############# </TD>";
    row.appendChild(col);
    tb.appendChild(row);
    }
    </script>
      

  6.   

    这个是ie的问题,他不支持修改tr或table的innerHTML属性,只允许修改td的innerHTML
    在firefox下是没有问题的
      

  7.   


    3和6楼的大哥们
    你都创建了td的DOM节点了
    innerHTML还加什么"<td></td>";
    别误导人了Orz
      

  8.   

    多谢各位大虾们。我原来写的就是用cell = row.insertCell();cell.innerHTML = ..........;但是当页面增加的行数很多时,再往后增加速度就很慢,而且是无法忍受的慢不知道各位大虾有没有办法
      

  9.   

    innerHTML本身的解释速度就是比较慢的了
    你的cell.innerHTML里写了什么?
    如果是纯文本的话推荐用cell.appendChild(document.createTextNode("内容"));
    或者分浏览器:
    IE:cell.innerText = "内容";
    FF:cell.textContent = "内容";
      

  10.   

    row的innerhtml应该是只读属性。只能通过建立cell来插入内容
      

  11.   

    cell.innerHTML里的东西本身比较复杂,有没有什么好的替代方法
      

  12.   

    继续用DOM的appendChild或inertBefore。。
    如:var div = document.createElement("div");
    div.appendChild(document.createTextNode("内容");
    cell.appendChild(div);不过如果DOM操作的次数太多的话,
    可以考虑将所有的东西都写成string,最后的时候再innerHTML(包括之前的table和row)
    DOM的效率虽然比innerHTML快很多
    但当DOM操作次数超过一定次数的话就会发生比单次的innerHTML快string的话,可以用数组先存着,最后再join,会比一直+=快很多
    以下提供一个JS的StringBuffer类
    function StringBuffer()
    {
     this._string = new Array();
    }
    StringBuffer.prototype.Append = function(str)
    {
     this._string.push(str);
    }
    StringBuffer.prototype.ToString = function()
    {
     return this._string.join("");
    }
    //调用方法:
    var a = new StringBuffer();
    a.Append("<table>");
    a.Append("<tbody>");
    a.Append("<tr>");
    a.Append("<td>");
    a.Append("<div>内容</div>");
    a.Append("</td>");
    a.Append("</tr>");
    a.Append("</tbody>");
    a.Append("</table>");
    var b = a.ToString();
      

  13.   

    上面大错了
    但当DOM操作次数超过一定次数的话就会发生比单次的innerHTML如以下为例子:<html>
    <head></head>
    <body>
    <div id="aaa"></div>
    <script language="javascript"> 
    function StringBuffer()
    {
     this._string = new Array();
    }
    StringBuffer.prototype.Append = function(str)
    {
     this._string.push(str);
    }
    StringBuffer.prototype.ToString = function()
    {
     return this._string.join("");
    }
    var a = new Date();
    var span;
    for(var i = 0; i < 1000; i++)
    {
     span = document.createElement("span");
     span.appendChild(document.createTextNode("内容"));
     document.getElementById("aaa").appendChild(span);
    }
    var b = new Date();
    alert(b-a);var c = new Date();
    var e = new StringBuffer();
    for(var i = 0;  i < 1000; i++)
    {
     e.Append("内容");
    }
    document.getElementById("aaa").innerHTML = e.ToString();
    var d = new Date();
    alert(d-c);
    </script> 
    </body>
    </html>
      

  14.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var tb;
    function addrow()
    {
        if(tb==null)
    tb=document.getElementById("tbl");
    var oTR=tb.insertRow(); 
    var oTD1=oTR.insertCell();
    oTD1.innerHTML="777";
    var oTD2=oTR.insertCell();
    oTD2.innerHTML="888";
    var oTD3=oTR.insertCell();
    oTD3.innerHTML="666";
    var oTD4=oTR.insertCell();
    oTD4.innerHTML="aaa";
    }
    </script>
    </head>
    <body>
    <input name="btn" type="button" value="AddRow" onclick="addrow();" />
    <table cellpadding="0" cellspacing="0" border="1" id="tbl">
    <tr><td>123</td><td>123</td><td>123</td><td>123</td></tr>
    <tr><td>456</td><td>456</td><td>456</td><td>456</td></tr>
    </table>
    </body>
    </html>不是很慢呐```
    可以限制其增加的行数,难道你任由用户随意添加?