js动态给table添加/删除tr的方法


Posted in Javascript onAugust 02, 2013
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">// Example: obj = findObj("image1");
function findObj(theObj, theDoc)
{ 
var p, i, foundObj; 
if(!theDoc) theDoc = document; 
if( (p = theObj.indexOf("?")) > 0 && parent.frames.length) 
{ theDoc = parent.frames[theObj.substring(p+1)].document; theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj); return foundObj;
}
//添加一个参与人填写行
function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中 
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var rowID = parseInt(txtTRLastIndex.value);
var signFrame = findObj("SignFrame",document);
//添加行
var newTR = signFrame.insertRow(signFrame.rows.length);
newTR.id = "SignItem" + rowID;
//添加列:序号
var newNameTD=newTR.insertCell(0);
//添加列内容
newNameTD.innerHTML = newTR.rowIndex.toString();
//添加列:姓名
var newNameTD=newTR.insertCell(1);
//添加列内容
newNameTD.innerHTML = "<input name='txtName" + rowID + "' id='txtName" + rowID + "' type='text' size='12' />";
//添加列:电子邮箱
var newEmailTD=newTR.insertCell(2);
//添加列内容
newEmailTD.innerHTML = "<input name='txtEMail" + rowID + "' id='txtEmail" + rowID + "' type='text' size='20' />";
//添加列:电话
var newTelTD=newTR.insertCell(3);
//添加列内容
newTelTD.innerHTML = "<input name='txtTel" + rowID + "' id='txtTel" + rowID + "' type='text' size='10' />";
//添加列:手机
var newMobileTD=newTR.insertCell(4);
//添加列内容
newMobileTD.innerHTML = "<input name='txtMobile" + rowID + "' id='txtMobile" + rowID + "' type='text' size='12' />";//添加列:公司名
var newCompanyTD=newTR.insertCell(5);
//添加列内容
newCompanyTD.innerHTML = "<input name='txtCompany" + rowID + "' id='txtCompany" + rowID + "' type='text' size='20' />";

//添加列:删除按钮
var newDeleteTD=newTR.insertCell(6);
//添加列内容
newDeleteTD.innerHTML = "<div align='center' style='width:40px'><a href='#'" + rowID + "')">删除</a></div>";
//将行号推进下一行
txtTRLastIndex.value = (rowID + 1).toString() ;
}
//删除指定行
function DeleteSignRow(rowid){
var signFrame = findObj("SignFrame",document);
var signItem = findObj(rowid,document);
//获取将要删除的行的Index
var rowIndex = signItem.rowIndex;
//删除指定Index的行
signFrame.deleteRow(rowIndex);
//重新排列序号,如果没有序号,这一步省略
for(i=rowIndex;i<signFrame.rows.length;i++){
signFrame.rows[i].cells[0].innerHTML = i.toString();
}
}//清空列表
function ClearAllSign(){
if(confirm('确定要清空所有参与人吗?')){
var signFrame = findObj("SignFrame",document);
var rowscount = signFrame.rows.length;
//循环删除行,从最后一行往前删除
for(i=rowscount - 1;i > 0; i--){
signFrame.deleteRow(i);
}
//重置最后行号为1
var txtTRLastIndex = findObj("txtTRLastIndex",document);
txtTRLastIndex.value = "1";
//预添加一行
AddSignRow();
}
}
</script>
</HEAD>
<BODY>
<div>
<table width="613" border="0" cellpadding="2" cellspacing="1" id="SignFrame">
<tr id="trHeader">
<td width="27" bgcolor="#96E0E2">序号</td>
<td width="64" bgcolor="#96E0E2">用户姓名</td>
<td width="98" bgcolor="#96E0E2">电子邮箱</td>
<td width="92" bgcolor="#96E0E2">固定电话</td>
<td width="86" bgcolor="#96E0E2">移动手机</td>
<td width="153" bgcolor="#96E0E2">公司名称</td>
<td width="57" align="center" bgcolor="#96E0E2"> </td>
</tr>
</table>
</div>
<div>
<input type="button" name="Submit" value="添加参与人" /> 
<input type="button" name="Submit2" value="清空" />
<input name='txtTRLastIndex' type='hidden' id='txtTRLastIndex' value="1" />
</div>
</BODY>
</HTML>
Javascript 相关文章推荐
JavaScript基本对象
Jan 11 Javascript
js下利用控制器载入对应脚本
Jul 17 Javascript
js中数组排序sort方法的原理分析
Nov 20 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
jquery ajax双击div可直接修改div中的内容
Mar 04 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
深入理解react-router@4.0 使用和源码解析
May 23 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
ligerUI---ListBox(列表框可移动的实例)
Nov 28 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
Sep 14 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 #Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 #Javascript
JS限制Textarea文本域字符个数的具体实现
Aug 02 #Javascript
javascript自动改变文字大小和颜色的效果的小例子
Aug 02 #Javascript
JS解决ie6下png透明的方法实例
Aug 02 #Javascript
用innerhtml提高页面打开速度的方法
Aug 02 #Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 #Javascript
You might like
php max_execution_time执行时间问题
2011/07/17 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python映射列表实例分析
2015/01/26 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python实现自动登录
2018/09/17 Python
python得到电脑的开机时间方法
2018/10/15 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
canvas烟花特效锦集
2018/01/17 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
夏季药店促销方案
2014/08/22 职场文书
2015年底工作总结范文
2015/05/15 职场文书
初中毕业生感言
2015/07/31 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers