本帖最后由 lihuasoft 于 2010-11-03 23:35:14 编辑

解决方案 »

  1.   

    <table id="tb">
      <tr><td></td><td>点此显示/隐藏r1</td></tr>
      <tr id="r1"><td colSpan=2>被显示或隐藏的内容</td></tr>
      <tr><td></td><td>点此显示/隐藏r2</td></tr>
      <tr id="r2"><td colSpan=2>被显示或隐藏的内容</td></tr>
      <tr><td></td><td>点此显示/隐藏r3</td></tr>
      <tr id="r3"><td colSpan=2>被显示或隐藏的内容</td></tr>
    </table>window.onload=function(){
    var tb= document.getElementById("tb");
    for(var i=0;i< tb.rows.length-1;i+=2){
     (function(i){tb.rows[i].onclick = function(){
      tb.rows[i+1].style.display = tb.rows[i+1].style.display !="none"?"none":"";
     };})(i)
    }
    }
      

  2.   

     <table id="tb"> 
     </table>
    <input type="button" value="ADD LINE" onclick="add(3);">
    <script language="JavaScript">
    <!--
        function add(n){
            var tbl = document.getElementById("tb");
            var rw1,rw2,cl1,cl2,cl3;
            var cellContent  = "点此显示/隐藏r";
            var cellContent2 = "被显示或隐藏的内容";
            for (var i=0;i<n;i++) {      
                rw = tbl.insertRow();            
                cl1 = rw.insertCell();
                cl2 = rw.insertCell();
                cl2.innerHTML = cellContent+(rw.rowIndex+2)/2;
                cl2.onclick = function(){this.parentNode.nextSibling.style.display = 
                this.parentNode.nextSibling.style.display == "none"?"":"none";};
                rw2 = tbl.insertRow();
                rw2.id = "r"+(rw.rowIndex+2)/2;
                cl3 = rw2.insertCell();
                cl3.colspan = 2;
                cl3.innerHTML  = cellContent2;
            }
        }
    //-->
    </script>
      

  3.   

    搞的那么复杂,用jquery简单的不行了
      

  4.   

    以下的代码你可以根据需要进行修改. 实现此方式主要是靠<td> 中的id值<table width="200" cellpadding="3" cellspacing="1" id="sTable"> 
      <% 
      for i=0 to 4 
      dim trnum:trnum="tr"&i 
      %> 
      <tr> <td bgcolor="#CCCCCC" id=" <%=trnum%>" name="" onclick="_onClieck(this)"> <%=trnum%> </td> </tr> 
      <%  
    for n=0 to 3 
      dim skdl:skdl=trnum&n 
      %> 
      <tr style="display:none" > <td id=" <%=skdl%>" name=" <%=trnum%>" onclick="_onClieck(this)"> <%=skdl%> </td> </tr> 
      <% 
      for mm=0 to 3 
      dim nnn:nnn="tff"&mm 
      %> 
      <tr style="display:none"> 
      <td  id=" <%=nnn%>" bgcolor="#FFCCFF" name=" <%=skdl%>" onclick="_onClieck(this)">&nbsp;&nbsp; <%=nnn%> </td> 
      </tr>    
    <% 
    next 
    next 
    next 
    %> 
    </table> 
    <script lanuage=javascript> 
    var objTable = document.getElementById("sTable"); 
    var iRows = objTable.rows.length; function _onClieck(obj) 

    for(var i=0;i <iRows;i++) 

    if(objTable.rows[i].firstChild.name==obj.id) 

    if(objTable.rows[i].style.display=="none") 

    objTable.rows[i].style.display="block"; 

    else 

    objTable.rows[i].style.display="none"; 
    for(var j=iRows-1;j>i;j--) 

    if(objTable.rows[j].firstChild.name==objTable.rows[i].firstChild.id) 

    objTable.rows[j].style.display="none"; 






    </script> 
      

  5.   


    <body>
    <table id="tb">
    </table>
    </body>
    </html>
    <script>
    function add_table(n)
    {
    var str='';
    for(var i=1;i<=n;i++)
    {
    str += '<tr><td></td><td onclick="display_tr(' + i + ')">点此显示/隐藏r' + i + '</td></tr><tr id="r' + i + '" style="display:none"><td colSpan=2>被显示或隐藏的内容</td></tr>';
    }
    document.getElementById("tb").innerHTML=str;
    }
    function display_tr(i)
    {
    var tr=document.getElementById("r"+i);
    tr.style.display = tr.style.display==""?"none":"";
    }add_table(3);
    </script>
      

  6.   

    参考:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>tableOper.html</title>

        <meta http-equiv="blog" content="blog.csdn.net/IBM_hoojo">
        <meta http-equiv="email" content="[email protected]">
        <meta http-equiv="author" content="hoojo">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            var row_index = 0;
            //建立一个函数build_row()用于建立新的一行且增加的四个文本框为空的且被禁用  
            function build_row() {
                row_index++;
                var tab = document.getElementById("Table1");
                var new_row = tab.insertRow(Table1.rows.length);
                new_row.setAttribute("id", "row" + row_index);
                var new_col = new_row.insertCell(0);
                new_col.innerHTML = "<input type='text' id='T1" + row_index + "' name='T1' size='20' >";
                var new_col = new_row.insertCell(1);
                new_col.innerHTML = "<input type='text' id='T2" + row_index + "' name='T2' size='20' >";
                var new_col = new_row.insertCell(2);
                new_col.innerHTML = "<input type='text' id='T3" + row_index + "' name='T3' size='8' >";
                var new_col = new_row.insertCell(3);
                var prc = Math.round(Math.random()*13+1);
                new_col.innerHTML = "<input type='text' id='T4" + row_index + "' name='T4' size='8' value='" + prc + "'>";            var new_col = new_row.insertCell(4);
                new_col.innerHTML = "<input type='button' value='删除此行' id='B5" + row_index + "' name='B5' LANGUAGE='javascript' onclick=\"delete_row('row" + row_index + "')\">";
                var tab = document.getElementById("Table1");
                var count = tab.rows.length;
                if (count > 1) {
                 for (var i = 1; i < count; i ++) {
                var inp = tab.rows[i].getElementsByTagName("input");
                for (var j = 0; j < inp.length; j++) {
                 if (i != count - 1) {
                 if (inp[j].type != "button") {
                 inp[j].onclick = null;//不是最后一行,赋值null覆盖以前的事件
                 }
                } else {
                 if (inp[j].type != "button") {
                 inp[j].onclick = build_row;
                 }
                }
                }
                }
                }
            }
            
            function delete_row(id) {
             var tab = document.getElementById("Table1");
             /*var index = -1;
             for (var i = 0, len = tab.rows.length; i < len; i++) {
             if (tab.rows[i].id == id) {
             index = i;//实际所在行数,不能在循环中删除。这样表格的行数长度和循环的长度不一致
             break;
             }
             }
             if (index != -1) {
             tab.deleteRow(i);
             }*/
            
             //or
             tab.deleteRow(document.getElementById(id).rowIndex);
             getTotals();
            }
            
            function getTotals() {
             var price = document.getElementsByName("T4");
             var t = 0;
             for (var i = 0; i < price.length; i++) {
             t += Number(!price[i] ? 0 : price[i].value);
             }
             document.getElementById("totals").value = t;
            }
            
       window.onload = function () {
              for (i = 0; i < 5; ++i) {
                  build_row();
              }
              getTotals();
           }
        </script>
      </head>
      
      <body>
    <table border="1" width="80%" cellspacing="0" cellpadding="0" id="Table1">
    <tr>
    <th align="center" bgcolor="#E6E6E6" height="16">
    名称
    </th>
    <th align="center" bgcolor="#E6E6E6" height="16">
    规格
    </th>
    <th align="center" bgcolor="#E6E6E6" height="16">
    数量
    </th>
    <th align="center" bgcolor="#E6E6E6" height="16">
    单价
    </th>
    <th align="center" bgcolor="#E6E6E6" height="16">
    删除
    </th>
    </tr>
    </table>
    <div>
    <input type="text" id="totals"/>
    <input type="button" value="增加一行" name="B3" onclick="build_row()" />
    <input type="button" value="提交" name="btnSbumit" id="btnSubmit" />
    </div>
    </body>
    </html>
      

  7.   

    <html>
    <head>
    <meta http-equiv="blog" content="blog.csdn.net/IBM_hoojo">
        <meta http-equiv="email" content="[email protected]">
        <meta http-equiv="author" content="hoojo">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
    body {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
    margin: 0px;
    padding: 0px;
    }

    table {
    font-size: 12px;
    font-family: Verdana, Geneva, sans-serif
    }

    td {
    text-align: center;
    background: #FFF
    }

    tr {
    height: 20px;
    }

    th {
    background: #9DACBF;
    color: #FFF;
    height: 20px;
    line-height: 20px
    }

    a {
    color: #99C;
    }

    a:hover {
    color: #F93
    }

    .input td {
    padding: 2px
    }

    .input input {
    width: 100%;
    border: 1px solid #000;
    overflow: hidden
    }
    </style>
    <script type="text/javascript">
    //简化document.getElementById()方法
    function $(obj) {
      return document.getElementById(obj);
    }
    //插入行
    function insRow() {
        var targetTable = $("nw");
        var lastRow = getTBody(targetTable).appendChild(targetTable.rows[1].cloneNode(true)); //插入行方法
        clearTextBox(lastRow);

        var newCell3 = lastRow.cells[2];
        newCell3.innerHTML = '<a href="#">删除</a>';
        newCell3.onclick = delRow;
    }
    //删除行
    function delRow() {
        var targetTable = $("nw");
        targetTable.deleteRow(this.parentNode.rowIndex);
    }
    function getTBody(table) {
        for (var i=0; i<table.childNodes.length; i++) {
            if (table.childNodes[i].nodeType == 1
                && table.childNodes[i].tagName.toLowerCase()=="tbody")
                return table.childNodes[i];
        }
    }
    function clearTextBox(target) {
        var allInputs = target.getElementsByTagName("input");
        var ipt;
        for (var i=0; i<allInputs.length; i++) {
            ipt = allInputs[i];
            if (ipt.type.toLowerCase()=="text") {
                ipt.value = "";
            }
        }
    }
    </script>
    <title>Javascript控制表格 实现动态添加和删除表格内容</title>
    </head>
    <body>
    <table id="nw" cellpadding="0" cellspacing="1" border="0" width="320" bgcolor="#CCCC99">
    <th>编号</th>
    <th>名称</th>
    <th>操作</th>
    <tr class="input">
    <td><input type="text" id="name" /></td>
    <td><input type="text" id="add" /></td>
    <td style="width: 52px"><input type="button" value="添 加" class="btn" onClick="insRow()" /></td>
    </tr>
    </table>
    </body>
    </html>
      

  8.   

    ff得话可能要把
    add_table(n)
    display_tr(i)
    这两个方法顺序换下把display_tr(i)放在上面,要不可能找不到方法