JavaScript案例之表单的提交以及删除操作

发布于:2022-11-28 ⋅ 阅读:(430) ⋅ 点赞:(0)

JavaScript案例之表单的提交以及删除操作

源码:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<style>
			table,
			tr,
			th,
			td {
				border: 1px solid #ccc;
			}

			tr {
				height: 40px;
			}

			table {
				border-collapse: collapse;
				width: 630px;
				text-align: center;
				margin: 20px auto;
			}

			thead {
				background-color: yellowgreen;
			}

			fieldset {
				width: 600px;
				margin: 0 auto;
			}

			input {
				height: 20px;
			}
		</style>
	</head>

	<body>
		<div id="app">
			<!-- 第一部分:输入信息 -->
			<fieldset>
				<legend>学生录入系统</legend>
				<p>
					<span>姓名:</span>
					<input type="text" name="username" class="username">
				</p>
				<p>
					<span>年龄:</span>
					<input type="text" name="age" class="age">
				</p>
				<p>
					<span>性别:</span>
					<select name="sex" id="sex">
						<option value="男">男</option>
						<option value="女">女</option>
					</select>
				</p>
				<p>
					<span>手机:</span>
					<input type="text" name="phone" class="phone">
				</p>
				<p>
					<button id="but">确认提交</button>
				</p>

			</fieldset>
			<!-- 第二部分:信息展示 -->
			<table>
				<thead>
					<tr>
						<th>姓名</th>
						<th>年龄</th>
						<th>性别</th>
						<th>手机</th>
						<th>删除</th>
					</tr>
				</thead>
				<tbody class="tbody">
				</tbody>
			</table>
		</div>
		<script>
			// 逻辑:1.添加信息并展示  2.删除操作
			// 先把数据push到一个数组当中,然后对数组进行遍历(对tr的循环,拼接之后,赋值给tbody的innerHTML) 
			let sex = document.getElementById('sex');
			let but = document.getElementById('but');
			let input = document.getElementsByTagName('input');
			let tbody = document.getElementsByTagName('tbody')[0];
			// 模拟一个数据
			// let stus = [{name:"李四",age:19,sex:"男",phone:15512344321}];
			let stus = [];
			// 1.提交 拼接一个对象,作为数组的元素
			but.onclick = function() {
				let obj = {
					name: input[0].value,
					age: input[1].value,
					sex: sex.value,
					phone: input[2].value
				};
				stus.push(obj);
				console.log(stus);
				// 2.对数组进行遍历
				let tr = '';
				stus.forEach((item, index) => {
					tr += "<tr class='newTr'>" +
						"<td>" + item.name + "</td>" +
						"<td>" + item.age + "</td>" +
						"<td>" + item.sex + "</td>" +
						"<td>" + item.phone + "</td>" +
						"<td onclick='del(" + index + ")'>删除</td>" +
						"</tr>";
				});
				tbody.innerHTML = tr;
			}
			// 3.删除操作
			function del(index) {
				// 3.1 删除数组中的这条信息
				stus.splice(index, 1);
				// 3.2 删除DOM元素
				// tbody.removeChild(该条信息的tr);
				let res = document.getElementsByClassName('newTr')[index];
				tbody.removeChild(res);
			}
		</script>
	</body>

</html>

效果图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到