insertBefore()需要两个参数,第一个参数(元素)插在第二个参数(元素)前面或你可以用  父元素.appendChild  (一个参数);加在最后面,对于innerHTML或outerHTML先赋值,再insertBefore/appendChild

解决方案 »

  1.   

    对于用createElement方法创建的元素,不能用outerHTML或innerHTML改变其内容
    所以下面的层可以
    但你可以这样:
     <html>
     <head>     </HEAD>   
          <script   language="javascript">   
      function   test(){     objDragItem = document.createElement("tr");
      myTd= document.createElement("td");
      myText=document.createTextNode("22222");
      myTd.appendChild(myText);
      objDragItem.appendChild(myTd);
      var menuItemContainer=document.getElementById("tr1");  menuItemContainer.parentNode.insertBefore(objDragItem,menuItemContainer);
          
      }   
      
      </script>   
      <BODY     bgcolor="#FFFFFF"   text="#000000"   leftmargin="0"   topmargin="0">   
      <DIV   id="t1">单击添加!</DIV>
      
      <table>
      <tr id="tr1">
      <td>111<td>
      <tr>
      </table>
      
      </BODY>   
      <script>   
    document.body.onclick=test;   
      </script>
    </html>
    顺便更正一下insertBefor的用法:)
      

  2.   

    谁说createElement 出来的元素不能用outerHTML或innerHTML改变其内容
    你证实过了么,我做过很多项目都可以动态改变的
      

  3.   

    To  nirvana72() ,,如果还是用回outerHTML  应该怎样写?
      

  4.   

    Ischema(花客) 说的也不全错,
    outerHTML 是只读的,而且似乎只能得到最外层的标签,比如<tr><td>...</td></tr>,outerHTML为<TR></TR>,但我记得不是这样的,不知道是不是和别的什么因素有关,在createElement时,可以createElement("div");createElement("<div style=""></div>");
    但不能标签嵌套,比如 createElement("<tr><td>222</td></tr>");X下面提供几种表格新建行的方法
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="WebPages_Test_Default" %><!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 runat="server">
        <title>无标题页</title>    <script type="text/javascript">   
          function  test()
          {   
             //方法1
    //        var TABLE = document.getElementById("tb1");        
    //        var TR    = document.getElementById("tr1");
    //        var TD    = document.getElementById("td1");//        
    //        var TBODY = TABLE.children[0];
    //        var newTR = document.createElement("tr");
    //        var newTD = document.createElement("td");
    //        newTD.innerHTML="<input value='222'></input>";
    //        newTR.appendChild(newTD);
    //        TBODY.appendChild(newTR);
            
            //方法2
    //        var TABLE = document.getElementById("tb1");
    //        var ROW   = TABLE.insertRow();
    //        var CELL  = ROW.insertCell();       
    //        CELL.innerHTML="<input value='222'></input>";        //方法3
    //        var TABLE = document.getElementById("tb1");
    //        var TR    = document.getElementById("tr1");
    //        var newTR = TR.cloneNode(true);
    //        var TBODY = TABLE.children[0];
    //        TBODY.appendChild(newTR);
          }  
        </script></head>
    <body style="background: #FFFFFF; color: #000000; margin: 0px">
        <form id="form1" runat="server">
            <div>            
                <table id="tb1">
                    <tr id="tr1">
                        <td id="td1">111</td>
                    </tr>
                </table>
                <input type="button" value="test" onclick="test();" />
            </div>
        </form>
    </body>
    </html>
      

  5.   

    outerHTML 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
      

  6.   

    楼上哪COPY 来的一串字符串啊,要回答就诚心点