103-105 添加删除记录

添加删除记录

DOM删除

  • removeChild()

删除子节点

  • confirm()

用于弹出一个带有确认和取消按钮的提示框,需要一个字符串作为参数,改字符串将会作为提示文字显示出来,如果用户点击确认会返回true,果果点击取消返回false

html 复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加删除记录练习</title>
<link rel="stylesheet" type="text/css" href="css.css" />
<script type="text/javascript">
	function  deleteA(){
		var tr = this.parentNode.parentNode;

		//获取要删除的员工的名字
		//var name = tr.getElementsByTagName("td")[0].innerHTML;
		var name = tr.children[0].innerHTML;

		//删除之前弹出一个提示框
		/*
         * confirm()用于弹出一个带有确认和取消按钮的提示框
         * 	需要一个字符串作为参数,该字符串将会作为提示文字显示出来
         * 如果用户点击确认则会返回true,如果点击取消则返回false
         */
		var flag = confirm("确认删除"+name+"吗?");

		//如果用户点击确认
		if(flag){
			//删除tr
			tr.parentNode.removeChild(tr);
		}

		/*
         * 点击超链接以后,超链接会跳转页面,这个是超链接的默认行为,
         * 	但是此时我们不希望出现默认行为,可以通过在响应函数的最后return false来取消默认行为
         */
		return false;
	};
	window.onload = function(){
		//获取所有额超链接
		var allA = document.getElementsByTagName("a");
		
		//为每个超链接都绑定一个单击响应函数
		for(var i=0 ; i < allA.length ; i++) {
			allA[i].onclick = deleteA;
		}
		var addEmpButton =document.getElementById("addEmpButton");
		addEmpButton.onclick =function (){
		var empName =document.getElementById("empName").value;
		var email =document.getElementById("email").value;
		var salary =document.getElementById("salary").value;

		// var a =document.createElement("a");
		// a.innerText ="Delete";


		var tr =document.createElement("tr");
		// var nameTd =document.createElement("td");
		// var emailTd =document.createElement("td");
		// var salaryTd =document.createElement("td");
		// var aTd =document.createElement("td");
			tr.innerHTML ="<td>"+empName+"</td>"+
					      "<td>"+email+"</td>"+
					      "<td>"+salary+"</td>"+
						  "<td><a href='javascript:;'>Delete</a></td>";
			var a =tr.getElementsByTagName("a")[0];//哪怕只有一个元素,该方法也会返回一个集合
			a.onclick =deleteA;

		// var nameText =document.createTextNode(empName);
		// var emailText =document.createTextNode(email);
		// var salaryText =document.createTextNode(salary);
		// var delText =document.createTextNode("delete");
		//
		//
		// // a.appendChild(delText);上面有innerText
		// a.href ="javascript:;";
		// aTd.appendChild(a);
		// nameTd.appendChild(nameText);
		// emailTd.appendChild(emailText);
		// salaryTd.appendChild(salaryText);
		//
		// tr.appendChild(nameTd);
		// tr.appendChild(emailTd);
		// tr.appendChild(salaryTd);
		// tr.appendChild(aTd);

		var employeeTable =document.getElementById("employeeTable");
		var tbody =employeeTable.getElementsByTagName("tbody")[0];
		tbody.appendChild(tr);
		};
	};

	
</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="deleteEmp?id=002">Delete</a></td>
		</tr>
		<tr>
			<td>Bob</td>
			<td>bob@tom.com</td>
			<td>10000</td>
			<td><a href="deleteEmp?id=003">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" value="abc">
						Submit
					</button>
				</td>
			</tr>
		</table>

	</div>

</body>
</html>
相关推荐
小码哥_常10 小时前
告别onActivityResult!Android数据回传的3大痛点与终极解决方案
前端
hhcccchh10 小时前
1.2 CSS 基础选择器、盒模型、flex 布局、grid 布局
前端·css·css3
修己xj10 小时前
Markdown 里写公式,别只知道 LaTeX!试试 HTML 标签,简单到飞起
html
专吃海绵宝宝菠萝屋的派大星11 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
爱分享的阿Q11 小时前
Rust加WebAssembly前端性能革命实践指南
前端·rust·wasm
蓝黑202011 小时前
Vue的 value=“1“ 和 :value=“1“ 有什么区别
前端·javascript·vue
小李子呢021111 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
He少年11 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python
史迪仔011211 小时前
[QML] QML IMage图像处理
开发语言·前端·javascript·c++·qt
AI_Claude_code11 小时前
ZLibrary访问困境方案四:利用Cloudflare Workers等边缘计算实现访问
javascript·人工智能·爬虫·python·网络爬虫·边缘计算·爬山算法