表格添加行,删除行通用方法

//表格添加行,删除行通用方法:
//评标办法
/*
* 参数意思:
  tabId:表格的id值;
  rowNum:添加行,删除行所在行即tr的id值;
  tdRows:数组,当添加行时,需要增加某些td的rowSpan时,把这些td的id放在一个数据中,当不需要时,数据为空,即[];
  startId:增加行数,各个新增td的id值的起始id值;
  hidId:隐藏域的值;
  cellArr:数组,新增行td的colSPan数组,默认是增加,删除按钮所在td的colSpan值;
*/
     //添加行
     function addRow(tabId,rowNum,tdRows,startId,hidId,cellArr){
    var tab = document.getElementById(tabId);
    var rowNum = document.getElementById(rowNum);
        if(tdRows.length>0){
           for(var i=0; i<tdRows.length; i++){
              var tbRow = document.getElementById(tdRows[i]);
              tbRow.rowSpan++;
           }
        }
    var hidObj = document.getElementById(hidId);
    hidObj.value++;
   cells = (!!cellArr ? cellArr.length : rowNum.getElementsByTagName('td')[0].colSpan);
    var rowIndex = rowNum.rowIndex;
    var tr = tab.insertRow(rowIndex);
    var tdId = tab.rows.length*cells + startId
    for(var i=0; i<cells; i++){
      var td = tr.insertCell();
    if(cellArr && cellArr.length>0){
       td.colSpan = cellArr[i];
    }
      td.style.border = '1px solid #000';
      td.innerHTML = '<textarea class="textarea1" id='+tdId+' style="width:90%"></textarea>'
      tdId++
    }
   }
   //删除行
   function deleteRow(tabId,rowNum,tdRows,hidId){
    var tab = document.getElementById(tabId);
    var rowNum = document.getElementById(rowNum);
    var hidObj = document.getElementById(hidId);
    var rowIndex = rowNum.rowIndex;
    var hidVal = hidObj.value;
    if(hidVal>0){
     tab.deleteRow(rowIndex-1);
     hidObj.value--;
            if(tdRows.length>0){
               for(var i=0; i<tdRows.length; i++){
                  var tbRow = document.getElementById(tdRows[i]);
                  tbRow .rowSpan--;
               }
}
    }else{
     alert('无法删除!')
    }
   }

 

//==================================================

调用方法如下:

<body>
<h2>无cellArr参数</h2>
<table id='tab1' width="100%" border="1">
  <tr>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
  </tr>
  <tr>
    <td id='td1' rowspan="3">00</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
  </tr>
  <tr>
    <td>21</td>
    <td>22</td>
    <td>23</td>
  </tr>
  <tr id='tr1'>
    <td colspan="3">
 <input type='hidden' id='1000' value=0 />
    <input type='button' value=' 添  加 ' id='add1000' οnclick="addRow('tab1','tr1',['td1'],1100,'1000')" /> &nbsp;
    <input type='button' value=' 删  除 ' id='del1000' οnclick="deleteRow('tab1','tr1',['td1'],'1000')" />

 </td>
  </tr>
</table>

<h2>有cellArr参数,但效果与无cellArr时一样</h2>
<table id='tab2' width="100%" border="1">
  <tr>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
  </tr>
  <tr>
    <td id='td2' rowspan="3">00</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
  </tr>
  <tr>
    <td>21</td>
    <td>22</td>
    <td>23</td>
  </tr>
  <tr id='tr2'>
    <td colspan="3">
 <input type='hidden' id='1001' value=0 />
    <input type='button' value=' 添  加 ' id='add1001' οnclick="addRow('tab2','tr2',['td2'],1200,'1001',[1,1,1])" /> &nbsp;
    <input type='button' value=' 删  除 ' id='del1001' οnclick="deleteRow('tab2','tr2',['td2'],'1001')" />

 </td>
  </tr>
</table>

<h2>有cellArr参数,即设置的colSpan不都是1</h2>
<table id='tab3' width="100%" border="1">
  <tr>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
  </tr>
  <tr>
    <td id='td3' rowspan="3">00</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
  </tr>
  <tr>
    <td>21</td>
    <td>22</td>
    <td>23</td>
  </tr>
  <tr id='tr3'>
    <td colspan="3">
 <input type='hidden' id='1002' value=0 />
    <input type='button' value=' 添  加 ' id='add1002' οnclick="addRow('tab3','tr3',['td3'],1300,'1002',[2,1])" /> &nbsp;
    <input type='button' value=' 删  除 ' id='del1002' οnclick="deleteRow('tab3','tr3',['td3'],'1002')" />

 </td>
  </tr>
</table>

<h2>tdRows存在不知一个值;有cellArr参数,即设置的colSpan不都是1</h2>
<table id='tab4' width="100%" border="1">
  <tr>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
    <td>标题</td>
  </tr>
  <tr>
    <td id='td41' rowspan="8">&nbsp;</td>
    <td id='td42' rowspan="8">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td rowspan="4">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr id='tr4'>
    <td colspan="3">
     <input type='hidden' id='1004' value=0 />
        <input type='button' value=' 添  加 ' id='add1002' οnclick="addRow('tab4','tr4',['td41','td42'],1400,'1004',[2,1])" /> &nbsp;
        <input type='button' value=' 删  除 ' id='del1002' οnclick="deleteRow('tab4','tr4',['td41','td42'],'1004')" />

 </td>
  </tr>
</table>
</body>

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值