JS实现动态表格的添加,修改,删除功能(推荐)


Posted in Javascript onJune 15, 2016

1. 首先在页面中配置好一个表格框架

<tr> 
<td>新增参数:</td> 
<td class="pn-fcontent"><input type="button" value="选择" onclick="openAppParamsPage();"/></td> 
<td>参数列表:</td> 
<td class="pn-fcontent"><input type="hidden" id="paramslist" name="paramslist" style="width:190%" height="500"/></td> 
</tr> 
<tr> 
<table id="tab" width="100%" cellspacing="1" cellpadding="0" border="0" style="" class="pn-ltable"> 
<tr> 
<td height="20" valign="top" align="center"> 
参数名称: 
</td> 
<td height="20" valign="top" align="center"> 
参数编码: 
</td> 
<td height="20" valign="top" align="center"> 
参数值: 
</td> 
<td id="pos_1" height="20"> 
操作 
</td> 
</tr> 
<tbody id="sortList"></tbody> 
</table> 
</tr> 
<tr> 
<td align="center" colspan="4"> 
<input type="submit" class="btn" value="保存" onclick="setParamslist();"/> 
<input type="button" class="btn" value="返回"/> 
</td> 
</tr>

2. 相关JS函数

function setParamslist() { 
var tab = document.getElementById("tab"); 
//表格行数 
var rows = tab.rows.length ; 
//表格列数 
var cells = tab.rows.item(0).cells.length ; 
//alert("行数"+rows+"列数"+cells); 
var rowData = ""; 
for(var i=1;i<rows;i++) { 
var cellsData = new Array(); 
for(var j=0;j<cells-1;j++) { 
cellsData.push(tab.rows[i].cells[j].innerText); 
} 
rowData = rowData + "|" + cellsData; 
} 
document.getElementById("paramslist").value = rowData; 
} 
//打开相关新增应用参数界面 
function openAppParamsPage() { 
var param = new Object(); 
//这个参数一定要传。 
param.win = window; 
param.id = 100; 
param.name = "test"; 
param.birthday = new Date(); 
var result = window.showModalDialog("addParamsItem","dialogWidth:500px;dialogHeight:600px;dialogLeft:200px;dialogTop=200px"); 
//var temp = document.getElementById("paramslist").value; 
//document.getElementById("paramslist").value = temp + result; 
addSort(result); 
} 
// 增加应用参数函数 
function addSort(data) { 
var name = data; 
if(name == ""||name==undefined ) { 
return; 
} 
console.log(data); 
var params = data.split(","); 
var paramName = params[0]; 
var paramCode = params[1]; 
var paramValue = params[2]; 
var row = document.createElement("tr"); 
row.setAttribute("id", paramCode); 
var cell = document.createElement("td"); 
cell.appendChild(document.createTextNode(paramName)); 
row.appendChild(cell); 
cell = document.createElement("td"); 
cell.appendChild(document.createTextNode(paramCode)); 
row.appendChild(cell); 
cell = document.createElement("td"); 
cell.appendChild(document.createTextNode(paramValue)); 
row.appendChild(cell); 
var deleteButton = document.createElement("input"); 
deleteButton.setAttribute("type", "button"); 
deleteButton.setAttribute("value", "删除"); 
deleteButton.onclick = function () { deleteSort(paramCode); }; 
cell = document.createElement("td"); 
cell.appendChild(deleteButton); 
row.appendChild(cell); 
document.getElementById("sortList").appendChild(row); 
} 
// 删除应用参数函数 
function deleteSort(id) { 
if (id!=null){ 
var rowToDelete = document.getElementById(id); 
var sortList = document.getElementById("sortList"); 
sortList.removeChild(rowToDelete); 
} 
}

附加表格的修改函数

//弹出更新界面相关信息 
function updateSort(id) { 
if (id!=null){ 
var row = document.getElementById(id); 
//alert("row is " + row.cells[0].innerHTML); 
var id = row.cells[0].innerHTML; 
var paramName = row.cells[1].innerHTML; 
var paramCode = row.cells[2].innerHTML; 
var paramValue = row.cells[3].innerHTML; 
var param = new Object(); 
//这个参数一定要传。 
param.win = window; 
param.id = 100; 
param.name = "test"; 
param.birthday = new Date(); 
var result = window.showModalDialog(baseUrl + "app/updateParamsItem?id=" + id + "¶mName=" + paramName + "¶mCode=" + paramCode + "¶mValue=" + paramValue, 
"dialogWidth:500px;dialogHeight:600px;dialogLeft:200px;dialogTop=200px"); 
var arr = result.split(","); 
row.cells[0].innerHTML = arr[0]; 
row.cells[1].innerHTML = arr[1]; 
row.cells[2].innerHTML = arr[2]; 
row.cells[3].innerHTML = arr[3]; 
} 
}

3. 弹出框页面,新增或者修改参数,并回写相关数据。

<!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>新增应用</title> 
<#include "/views/head.html"/> 
</head> 
<body> 
<div class="body-box"> 
<div class="clear"></div> 
<form > 
<table width="100%" cellspacing="1" cellpadding="2" border="0" class="pn-ftable"> 
<tr> 
<td>参数名称:</td> 
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramName" name="paramName"/></td> 
</tr> 
<tr> 
<td>参数编码:</td> 
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramCode" name="paramCode" required="true" /></td> 
</tr> 
<tr> 
<td>参数值:</td> 
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramValue" name="paramValue" required="true" /></td> 
</tr> 
<tr> 
<td align="center" colspan="4"> 
<input type="submit" value="保存" onclick="returnResult();"/> 
<input type="button" value="返回" onclick="closeWindow();"/> 
</td> 
</tr> 
</table> 
</form> 
</div> 
</body> 
</html> 
<script type="text/javascript"> 
//直接关闭窗口 
function closeWindow() { 
window.close(); 
} 
//获取值,组装后返回 
function returnResult() { 
if(!$('form').valid()) 
return; 
var paramName = document.getElementById("paramName"); 
var paramCode = document.getElementById("paramCode"); 
var paramValue = document.getElementById("paramValue"); 
//alert("value is " + paramName.value + "," + paramCode.value + "," + paramValue.value); 
var result = paramName.value + "," + paramCode.value + "," + paramValue.value; 
window.returnValue = result; 
window.close(); 
} 
</script>

以上所述是小编给大家介绍的JS实现动态表格的添加,修改,删除功能(推荐)全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
Mar 24 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
jquery实现div拖拽宽度示例代码
Jul 31 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
Sep 06 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
Javascript中click与blur事件的顺序详析
Apr 25 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
JS封装的自动创建表格的实现代码
Jun 15 #Javascript
基于JavaScript代码实现自动生成表格
Jun 15 #Javascript
JavaScript生成带有缩进的表格代码
Jun 15 #Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 #Javascript
JavaScript仿flash遮罩动画效果
Jun 15 #Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 #Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 #Javascript
You might like
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
js加解密 脚本解密
2008/02/22 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python实现简单中文词频统计示例
2017/11/08 Python
如何解决安装python3.6.1失败
2020/07/01 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
与UNIX有关的几个名词
2015/09/17 面试题
优秀士兵个人事迹材料
2014/01/19 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
公司食堂管理制度
2015/08/05 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
Python 内置函数速查表一览
2021/06/02 Python
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技