动态表格的实现

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>动态表格</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">

function addOneRow(){
  //判断是否传入足够参数
 if(arguments.length <= 1 ){
  return "error";
 }
 try{
  //获取table句柄
  var tb=document.getElementById(arguments[0]);
  //添加一行
  var newTr = tb.insertRow();
  for(var i=1 ;i < arguments.length;i++){  
   //添加一列
   var newTd = newTr.insertCell();
   newTd.innerHTML = arguments[i]; 
  }
 }catch (e) {
  return e.toString();
 }
 return "true";
}

function deleteOneRow(){
  //判断是否传入足够参数
 if(arguments.length == 0){
  return "error";
 }
 var thisTag = arguments[0];
 try{
  //获取句柄
  var obj = getThisObj(thisTag); 
  //寻找最靠近的table
  while (obj.nodeName.toUpperCase() != 'TABLE'){  
   obj =obj.parentElement;  
  } 
  //删除一行
  var newTr = obj.deleteRow(getTrRowOfTable(thisTag)); 
 }catch (e) {
  return e.toString();
 }
 return "true";
}

function getTableMaxRow(){
 //判断是否传入足够参数
 if(arguments.length == 0 ){
  return "error";
 }
 try{
  //获取句柄
  var obj = getThisObj(arguments[0]); 
  //寻找最靠近的table
  while (obj.nodeName.toUpperCase() != 'TABLE'){  
   obj =obj.parentElement;  
  }
  return obj.rows.length;
 }catch (e) {
  return e.toString();
 }
}

function getTrRowOfTable(){
 //判断是否传入足够参数
 if(arguments.length == 0 ){
  return "error";
 }
 try{
  //获取传入标签的句柄
  var obj = getThisObj(arguments[0]); 
  //寻找最靠近的TR
  while (obj.nodeName.toUpperCase() != 'TR'){  
   obj =obj.parentElement;  
  }
  //返回TR的行号 
  return obj.rowIndex;
 }catch (e) {
  //返回异常信息
  return e.toString();
 }
}

//获取指定标签的句柄
function getThisObj(){
 var obj;
 //若定义了id
 if(arguments[0].id != ""){
  obj=document.getElementById(arguments[0].id);
  return obj;
 } 
 //若定义了name
 if(arguments[0].name != ""){
  //通过name取句柄得到的是个数组,所以必须保证该name页面唯一
  obj=document.getElementsByName(arguments[0].name)[0];  
  return obj;
 }
}

function showInfo(){
 //显示本行号
 alert("当前行号为:"+ getTrRowOfTable(arguments[0]));
 //显示总行数
 alert("总行数为:"+ getTableMaxRow(arguments[0]));
}


var rowId=1;
function addRow(){
 var tagStr="<input type=text value=ccc name="+rowId+" onclick='addRow();showInfo(this)' onchange='deleteOneRow(this);'>";
 addOneRow("tb",tagStr);
 rowId++;
}
</script>
</HEAD>
<BODY onload="addRow();">
 <table id="tb"></table>
</BODY>
</HTML>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值