浏览 3760 次
锁定老帖子 主题:动态表格的实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-15
<!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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |