javascript操作tabel方法小结

       前段时间有人问起原生javascript操作表格的一些写法,百度了一把,顺便把表格一些专门的方法整理了一下,写个demo存着。

获取某行:objtable.rows[index]

获取某列:objtable.rows[rowindex].cells[index]

获取当前行号:objrow.rowIndex

插入一行:insertRow(index)  插入一行到index所在行之前并返回新建的行对象

删除一行:deleteRow()  不传参数,表示删除第一行

插入一个单元格:objrow.insertCell(index)

删除一个单元格;objrow.deletetCell(index)

*insertRow插入一行,插入的是空行,即<tr></tr>,还得继续插入单元格。

*deletetCell删除单元格,当一行所有的单元格都删完,就剩下空行<tr></tr>

demo代码如下,样式没有时间写

<!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=utf-8" />
<title>js操作表格demo</title>
<style type="text/css">
body{ background: repeat-x}
</style>
</head>

<body>
<table width="100%" border="1" cellspacing="1" cellpadding="0" id="tableDemo">
  <tr>
    <th scope="col">第一列</th>
    <th scope="col">第二列</th>
    <th scope="col">第三列</th>
    <th scope="col">第四列</th>
  </tr>
  <tr>
    <td>1-1</td>
    <td>1-2</td>
    <td>1-3</td>
    <td>1-4</td>
  </tr>
  <tr>
    <td>2-1</td>
    <td>2-2</td>
    <td>2-3</td>
    <td>2-4</td>
  </tr>
  <tr>
    <td>3-1</td>
    <td>3-2</td>
    <td>3-3</td>
    <td>3-4</td>
  </tr>
  <tr>
    <td>4-1</td>
    <td>4-2</td>
    <td>4-3</td>
    <td>4-4</td>
  </tr>
  <tr>
    <td>5-1</td>
    <td>5-2</td>
    <td>5-3</td>
    <td>5-4</td>
  </tr>
</table>
<input type="button" value="添加一行至第一行" οnclick="addfirstRow()"/><br />
<input type="button" value="添加一行至最后一行" οnclick="addlastRow()"/><br />
<input type="button" value="添加一行至" οnclick="addOneRow()"/><input type="text" id="asrowIndex" />行前<br />
<input type="button" value="删除第一行" οnclick="deletefirstrow()"/><br />
<input type="button" value="删除最后一行" οnclick="deletelastrow()"/><br />
<input type="button" value="删除" οnclick="deleterowcell()"/>第<input type="text"  id="delrow"/>行第<input type="text" id="delcell" />列<br />

<script type="text/javascript">
//获取tabel对象
 var objtable = document.getElementById("tableDemo");
//获得表头的列数
 var cellnum = objtable.rows[0].cells.length;
//获得表格行数
 var rownum;

 //添加一行至第一行
 function addfirstRow() {
  
  var newRow = objtable.insertRow(1);
  //newRow.rowIndex获得行数
  addCell(newRow);
  
  }
 //添加一行至最后一行
  function addlastRow() {
  rownum = objtable.rows.length;
  var newRow = objtable.insertRow(rownum);
  addCell(newRow);
  }
  
 //添加一行至特定行
  function addOneRow(){
   var inserRowIndex = document.getElementById("asrowIndex").value;
   //alert(inserRowIndex);
   var newRow = objtable.insertRow(inserRowIndex);
   addCell(newRow);
   }
   
 //添加一个单元格至第一行最后
 function addlastcell_row(){
  var fistrow = objtable.rows[1];
  var newcell = fistrow.insertCell(fistrow.cells.length);
   newcell.innerHTML ="222";
  }
  
 //删除第一行
 function deletefirstrow(){
  deleterow(1);
  
  }
  
 //删除最后一行
 function deletelastrow(){
  deleterow();
  
  }
  
 //删除某行某列
 function deleterowcell(){
  var delrow = document.getElementById("delrow").value;
  var delcell = document.getElementById("delcell").value;
  
  var row = objtable.rows[delrow];
  row.deleteCell(delcell-1);
  //如果被删成空行,继续删除行
  if(!row.cells.length){
   objtable.deleteRow(delrow);
   }
  
  }
 //删除某行
 function deleterow(delrow){
  objtable.deleteRow(delrow);
  }
  
 
  //循环添加列
  function addCell(newRow){
   for(var i=0;i<cellnum; i++){
   var newcell = newRow.insertCell(0);
   newcell.innerHTML ="1111";
   }
   
   }

//鼠标经过行变色
window.οnlοad= function(){
 for(var x = 0; x<objtable.rows.length;x++){
 
  objtable.rows[x].οnmοusemοve=function(){
   this.style.background="#e0e0e0";}
  
  objtable.rows[x].οnmοuseοut=function(){
   this.style.background="#fff";}
  }
 
 }
</script>
</body>
</html>

 

鼠标移动到每行变色,如果用jquery写更简单

 


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值