JS代码实现table表格的增删改操作

删除
通过点击按钮实现删除操作,使用remove来删除整行数据。

			function deleRow(a){
				//通过传参获取他的父级元素tr
				var tr = a.parentNode.parentNode;
				//通过remove来进行删除
				tr.remove();
			}

修改
首先通过cells获取到单元格的一个数组,将单元格每一个值赋值input中的value,可以在input元素中进行修改,修改之后再将每一个value赋值给td中,让它实现在table表格中

				var id = cells[0].innerText;
				var name = cells[1].innerText;
				var sex = cells[2].innerText;
				var phone = cells[3].innerText;
				var address = cells[4].innerText;
				var ary = [id,name,sex,phone,address];

				for(var i = 0;i<ary.length;i++){
					var input = document.createElement("input");
					var a = ary[i];
					if(a==null){
						
					}else{
						input.value = ary[i];
					}
					form.appendChild(input);
				}

			for(var i = 0;i<cells.length-1;i++){
					cells[i].innerText = form.elements[i].value;
				}

添加
通过insertRow在表格的最后一行添加数据,insertCell在tr的最后一个单元格插入数据。

				var table = document.getElementById("tab");
				//通过rows返回所有行的一个数组,再用insertRow在最后一行插入数据
				var tr = table.insertRow(table.rows.length);
				var form = document.getElementById("form");
				var length = form.length;
				for(var i = 0;i<length;i++){
					//通过insertCell在tr中的最后一个单元格插入数据
					var td = tr.insertCell(i);
					//最后将值赋值给单元格
					td.innerText = form.elements[i].value;
					//最后一个td直接为固定的
					if(i == length-1){
						td.innerHTML = '<input type="button" value="更		新" οnclick="updateTab(this)" />' + 
					'<input type="button" value="删除" οnclick="deleRow(this)" />'
					}
				}

代码

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			table{
				border: 1px solid black;
				border-collapse: collapse;
			}
			td,tr,th{
				width: 100px;
				height: 30px;
				border: 1px solid black;
				text-align: center;
			}
			body{
				width: 80%;
				margin: 0 auto;
			}
		</style>
		<script type="text/javascript">
			function deleRow(a){
				//通过传参获取他的父级元素tr
				var tr = a.parentNode.parentNode;
				//通过remove来进行删除
				tr.remove();
			}
			function updateTab(b){
				var tr = b.parentNode.parentNode;
				var cells = tr.cells;
				console.log(cells.length);
				//通过cells获取到单元格的一个数组,并赋值给变量
				var id = cells[0].innerText;
				var name = cells[1].innerText;
				var sex = cells[2].innerText;
				var phone = cells[3].innerText;
				var address = cells[4].innerText;
				var ary = [id,name,sex,phone,address];
				del();
				addForm(ary,tr);
			}
			//因为每次点击更新按钮会出现新的input,所以要把之前的input给删除掉
			function del(){
				//通过id获取form标签
				var form = document.getElementById("form");
				//通过角标删除form中的input标签,因为每次删除的一个所以form的长度会变化,将长度的值赋值给变量
				var length = form.length;
				for(var i = 0;i<length;i++){
					form.elements[0].remove();
				}
			}
			function addForm(ary,tr){
				var form = document.getElementById("form");
				//如果ary为空则创建一个空数组,
				if(ary == null){
					ary = new Array(5);
				}
				for(var i = 0;i<ary.length;i++){
					var input = document.createElement("input");
					var a = ary[i];
					//如果为空则创建一个空的input框
					if(a==null){				
					}else{
						input.value = ary[i];
					}
					form.appendChild(input);
				}
				var input = document.createElement("input");
				//在input标签中添加属性
				if(tr == null){
					input.setAttribute("onclick","addInput()");
					input.setAttribute("type","button");
					input.setAttribute("value","确认添加");
					form.appendChild(input);
				}else{
					input.setAttribute("type","button");
					input.setAttribute("value","确认修改");
					console.log(tr.rowIndex);
					input.setAttribute("onclick","save("+ tr.rowIndex +")");
					form.appendChild(input);
				}
			}
			function save(a){
				//rows获取到行
				var tr = document.getElementById("tab").rows[a];
				var form = document.getElementById("form");
				var length = form.length;
				//cells获取到单元格的数组
				var cells = tr.cells;
				for(var i = 0;i<cells.length-1;i++){
					//通过for循环赋值给td
					cells[i].innerText = form.elements[i].value;
				}
				del();
			}
			function add(){
				del();
				addForm(null,null);
			}
			function addInput(){
				var table = document.getElementById("tab");
				//通过rows返回所有行的一个数组,再用insertRow在最后一行插入数据
				var tr = table.insertRow(table.rows.length);
				var form = document.getElementById("form");
				var length = form.length;
				for(var i = 0;i<length;i++){
					//通过insertCell在tr中的最后一个单元格插入数据
					var td = tr.insertCell(i);
					//最后将值赋值给单元格
					td.innerText = form.elements[i].value;
					//最后一个td直接为固定的
					if(i == length-1){
						td.innerHTML = '<input type="button" value="更新" οnclick="updateTab(this)" />' + 
					'<input type="button" value="删除" οnclick="deleRow(this)" />'
					}
				}
			}
			function init(){}
		</script>
	</head>
	<body onl oad="init()">
		<form id="form"></form>
		<input type="button" value="添加" onclick="add()" />
		<table id="tab">
			<tr>
				<th>编号</th>
				<th>姓名</th>
				<th>性别</th>
				<th>手机号</th>
				<th>地址</th>
				<th>操作</th>
			</tr>
			<tr>
				<td>1001</td>
				<td>张三</td>
				<td>男</td>
				<td>1888888888</td>
				<td>花果山</td>
				<td>
					<input type="button" value="更新" onclick="updateTab(this)" />
					<input type="button" value="删除" onclick="deleRow(this)" />
				</td>
			</tr>
			<tr>
				<td>1002</td>
				<td>李四</td>
				<td>女</td>
				<td>16666666666</td>
				<td>火焰南山</td>
				<td>
					<input type="button" value="更新" onclick="updateTab(this)" />
					<input type="button" value="删除" onclick="deleRow(this)" />
				</td>
			</tr>
		</table>
	</body>
</html>
上一篇:细胞专刊 | PBMC/人骨髓单个核细胞


下一篇:java和C#中快速生成Excel报表