使用javascript动态添加或删除table的行或者列

第一种方法:使用insertRow添加行,使用insertCell添加单元格,再用innerHTML填充单元格。使用deleteRow删除行,代码如下:
Javascript代码:
  1. function addRow() 
  2.   { 
  3.      var root = document.getElementById("tbody"
  4.      var allRows = root.getElementsByTagName('tr'); 
  5.      var allCells = allRows[0].getElementsByTagName('td'); 
  6.      var newRow = root.insertRow(); 
  7.      var newCell0 = newRow.insertCell(); 
  8.      var newCell1 = newRow.insertCell(); 
  9.      var newCell2 = newRow.insertCell(); 
  10.      var newCell3 = newRow.insertCell(); 
  11.      newCell0.innerHTML = allCells[0].innerHTML; 
  12.      newCell1.innerHTML = allCells[1].innerHTML; 
  13.      newCell2.innerHTML = allCells[2].innerHTML; 
  14.      newCell3.innerHTML = allCells[3].innerHTML; 
  15.   } 
  16.   function removeRow(r) 
  17.   { 
  18.     var root = r.parentNode; 
  19.     root.deleteRow(r); 


HTML代码:

  1. <table> 
  2.   <tbody id="tbody"> 
  3.     <tr> 
  4.         <td><select><option>hello</option><option>hi</option></select></td> 
  5.         <td><input type="text" value="enter you name here" /></td> 
  6.         <td><input type="text" value="text2"/></td> 
  7.         <td><input type="button" value="remove" onclick="removeRow(this.parentNode.parentNode)"/></td> 
  8.     </tr> 
  9.     </tbody> 
  10.   </table> 
  11.   <table><tr><td><input type="button" value="add" onclick="addRow()" /></td></tr></table> 

第二种方法:使用cloneNode方法(复制节点)和appendChild(附加子元素),使用removeChild删除子元素,代码如下:

Javascript代码:

  1. function addRow() 
  2.     var root = document.getElementById("tbody"); 
  3.     var allRows = root.getElementsByTagName('tr'); 
  4.     var cRow = allRows[0].cloneNode(true
  5.     root.appendChild(cRow); 
  6. function removeRow(r) 
  7.     var root = r.parentNode; 
  8.     var allRows = root.getElementsByTagName('tr'
  9.     if(allRows.length>1) 
  10.         root.removeChild(r); 
  11.     else 
  12.         alert("only one row left, you not need to remove it."); 

HTML代码:

  1. <table border="0" cellspacing="0" cellpadding="0"> 
  2.   <tbody id="tbody"> 
  3.     <tr> 
  4.       <td><input type="text" name="text1" /></td> 
  5.       <td><input type="text" name="text2" /></td> 
  6.       <td><select name="select"> 
  7.         <option>item1</option> 
  8.         <option>item2</option> 
  9.         <option>item3</option> 
  10.         <option>item4</option> 
  11.         <option>item5</option> 
  12.       </select></td> 
  13.       <td><input type="button" value="Remove" onclick="removeRow(this.parentNode.parentNode)"></td> 
  14.     </tr></tbody> 
  15.   </table> 
  16.   <input name="button" type="button" value="Add row" onclick="addRow(')"> 

以上代码IE7.0测试通过。其他浏览器未检测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值