JavaScript实现向表格中添加记录和删除记录(JS添加删除节点练习)

37 篇文章 8 订阅
30 篇文章 0 订阅

注:本案例适合dom初学者练习节点的删除添加操作。
效果图:
在这里插入图片描述

源码及解析:

html & JavaScript源码:

<!DOCTYPE HTML>
<html>

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>添加删除记录练习</title>
		<link rel="stylesheet" type="text/css" href="./style/css2.css" />
		
		<script type="text/javascript">
			function DelRecord(){
				var tr = this.parentNode.parentNode;
				//confirm用于弹出一个带有确认和取消按钮的提示框
				//	需要一个字符串作为参数,该字符串将会作为提示文字显示出来
				//	如果用户点击确认则会返回true,如果点击取消则返回false
				// var name = tr.firstElementChild.innerHTML;该语句也可写为:
				var name = tr.getElementsByTagName("td")[0].innerHTML;
				// console.log(name);
				var cm = confirm("确认删除"+name+"吗?");
				// console.log(cm);
				if(cm){
					tr.parentNode.removeChild(tr);
				}
				return false;
			}
			window.onload = function(){
				var allA = document.getElementsByTagName("a");
				for(var i = 0; i < allA.length; i++) {
					allA[i].onclick = DelRecord;
				}

				//添加记录的实现
				var addEmpButton = document.getElementById("addEmpButton");
				addEmpButton.onclick = function(){
					var name = document.getElementById("empName").value;
					var email = document.getElementById("email").value;
					var salary = document.getElementById("salary").value;
					// console.log(name+"  "+email+"  "+salary);

					var record = document.createElement("tr");
					record.innerHTML = "<td>"+name+"</td>"+
						"<td>"+email+"</td>"+"<td>"+salary+"</td>"+
						"<td>"+"<a href='javascript:;'>Delete</a>"+"</td>";

					var employeeTable = document.getElementById("employeeTable");
					// employeeTable.appendChild(record); 

					//tr被自动放到了tbody标签中,此时我们需要尽量添加到tbody中
					var tbody = document.getElementsByTagName("tbody")[0];
					console.log(tbody.innerText);
					tbody.appendChild(record);


					//为新绑定的tr添加onclick
					var allA = document.getElementsByTagName("a");
					for(var i = 0; i < allA.length; i++) {
						allA[i].onclick = DelRecord;
					}
				};
			};

		</script>

	</head>

	<body>

		<table id="employeeTable">
			<tr>
				<th>Name</th>
				<th>Email</th>
				<th>Salary</th>
				<th>&nbsp;</th>
			</tr>
			<tr>
				<td>Tom</td>
				<td>tom@tom.com</td>
				<td>5000</td>
				<td>
					<a href="javascript:;">Delete</a>
				</td>
			</tr>
			<tr>
				<td>Jerry</td>
				<td>jerry@sohu.com</td>
				<td>8000</td>
				<td>
					<a href="javascript:;">Delete</a>
				</td>
			</tr>
			<tr>
				<td>Bob</td>
				<td>bob@tom.com</td>
				<td>10000</td>
				<td>
					<a href="javascript:;">Delete</a>
				</td>
			</tr>
		</table>

		<div id="formDiv">

			<h4>添加新员工</h4>

			<table>
				<tr>
					<td class="word">name: </td>
					<td class="inp">
						<input type="text" name="empName" id="empName" />
					</td>
				</tr>
				<tr>
					<td class="word">email: </td>
					<td class="inp">
						<input type="text" name="email" id="email" />
					</td>
				</tr>
				<tr>
					<td class="word">salary: </td>
					<td class="inp">
						<input type="text" name="salary" id="salary" />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<button id="addEmpButton">
						Submit
						</button>
					</td>
				</tr>
			</table>

		</div>

	</body>

</html>

css源码:


#total {
	width: 450px;
	margin-left: auto;
	margin-right: auto;
}

ul {
	list-style-type: none;
}

li {
	border-style: solid;
	border-width: 1px;
	padding: 5px;
	margin: 5px;
	background-color: #99ff99;
	float: left;
}

.inner {
	width: 400px;
	border-style: solid;
	border-width: 1px;
	margin: 10px;
	padding: 10px;
	float: left;
}

#employeeTable {
	border-spacing: 1px;
	background-color: black;
	margin: 80px auto 10px auto;
}

th,td {
	background-color: white;
}

#formDiv {
	width: 250px;
	border-style: solid;
	border-width: 1px;
	margin: 50px auto 10px auto;
	padding: 10px;
}

#formDiv input {
	width: 100%;
}

.word {
	width: 40px;
}

.inp {
	width: 200px;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供相关的代码示例。首先,请确保在HTML文档正确引入jQuery和JavaScript脚本,如下所示: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>动态生成表格</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="script.js"></script> </head> <body> <table id="myTable"> <thead> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>张三</td> <td>18</td> <td><button class="edit">编辑</button><button class="delete">删除</button></td> </tr> <tr> <td>2</td> <td>李四</td> <td>20</td> <td><button class="edit">编辑</button><button class="delete">删除</button></td> </tr> </tbody> </table> <button id="addRow">添加一行</button> </body> </html> ``` 其,`<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>`是引入jQuery库的代码,`<script src="script.js"></script>`是引入JavaScript脚本的代码,`<table id="myTable">`是我们要动态生成的表格的标签。 接下来,我们来看一下`script.js`文件的代码: ```javascript $(document).ready(function() { // 编辑按钮的点击事件 $(document).on("click", ".edit", function() { var row = $(this).closest("tr"); var id = row.find("td:eq(0)").text(); var name = row.find("td:eq(1)").text(); var age = row.find("td:eq(2)").text(); var new_name = prompt("请输入姓名", name); var new_age = prompt("请输入年龄", age); if (new_name != null && new_age != null) { row.find("td:eq(1)").text(new_name); row.find("td:eq(2)").text(new_age); } }); // 删除按钮的点击事件 $(document).on("click", ".delete", function() { $(this).closest("tr").remove(); }); // 添加一行按钮的点击事件 $("#addRow").click(function() { var id = $("#myTable tbody tr:last-child td:first-child").text(); if (id == "") { id = 1; } else { id = parseInt(id) + 1; } var name = prompt("请输入姓名", ""); var age = prompt("请输入年龄", ""); if (name != null && age != null) { var newRow = "<tr><td>" + id + "</td><td>" + name + "</td><td>" + age + "</td><td><button class='edit'>编辑</button><button class='delete'>删除</button></td></tr>"; $("#myTable tbody").append(newRow); } }); }); ``` 这段代码实现了编辑、删除添加一行按钮的点击事件。具体来说,当用户点击编辑按钮时,会弹出一个对话框,让用户输入新的姓名和年龄,然后更新表格对应的单元格;当用户点击删除按钮时,会删除该行数据;当用户点击添加一行按钮时,会弹出一个对话框,让用户输入新的姓名和年龄,然后在表格的最后一行添加一条新的数据。 以上就是动态生成添加修改删除表格的代码示例,希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值