【JavaScript】DOM操作表格

简介:
DOM操作表格

1.利用JavaScript动态增加、删除表格内容

页面如图



注:首先说个小问题,有些如制定按钮点击事件的js代码,放在html文档最后可以,放在最前面(<head>标签内)不可以,原因是html文档是自上往下读取,当读到最上面的js、代码时,并没有读取相应的DOM标签,所以制定的按钮功能没有效果,如果非要放在上面,可以指定到window.onload方法中去:
<head>
<span style="white-space:pre">	</span><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<title>js测试</title>
	<script language="javascript">
	        //window.onload执行规则:
		//1.必须dom结构绘制完毕(整个html解析结束)之后才执行
		//2.页面的所有关联的文件必须加载完毕
		window.onload=function(){
			//<button id="addUser">提交</button>
			document.getElementById("addUser").onclick=function(){
				alert("xxxx");
			};
		}
	</script>
</head>

言归正传,咱们来实现刚刚说的动态增删表格功能

实现:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>js测试</title>
		
	</head>
	<body> 
	   
	    <center>
			<br><br>
			添加用户:<br><br>
			姓名: <input type="text" name="name" id="name" />  
			email: <input type="text" name="email" id="email" />  
			电话: <input type="text" name="tel" id="tel" /><br><br>
			<button id="addUser">提交</button>
			<br><br>
			<hr>
			<br><br>
			<table id="usertable" border="1" cellpadding="5" cellspacing=0>
				<tbody>
					<tr>
						<th>姓名</th>
						<th>email</th>
						<th>电话</th>
						<th> </th>
					</tr>
					<tr>
						<td>Tom</td>
						<td>tom@tom.com</td>
						<td>5000</td>
						<td><a href="deleteEmp?id=Tom">Delete</a></td>
					</tr>
					<tr>
						<td>Jerry</td>
						<td>jerry@sohu.com</td>
						<td>8000</td>
						<td><a href="deleteEmp?id=Jerry">Delete</a></td>
					</tr>
				</tbody>
			</table>
		</center>
	</body>
	<script language="javascript">
		//window.onload执行规则:
		//1.必须dom结构绘制完毕(整个html解析结束)之后才执行
		//2.页面的所有关联的文件必须加载完毕
		window.onload=function(){
			//<button id="addUser">提交</button>
			document.getElementById("addUser").onclick=function(){
				/****************************************************/
				//获取文本框的值
				var name=document.getElementById("name").value;
				var email=document.getElementById("email").value;
				var tel=document.getElementById("tel").value;
				
				/****************************************************/
				//创建四个<td>,并加入文本值
				var nameTd=document.createElement("td");
				var nameText=document.createTextNode(name);
				nameTd.appendChild(nameText);
				var emailTd=document.createElement("td");
				var emailText=document.createTextNode(email);
				emailTd.appendChild(emailText);
				var telTd=document.createElement("td");
				var telText=document.createTextNode(tel);
				telTd.appendChild(telText);
				
				//创建超链接标签
				var aTd=document.createElement("td");
				var aElement=document.createElement("a");
				aElement.setAttribute("href","deleteEmp?id="+name);
				var deleteText=document.createTextNode("Delete");
				aElement.appendChild(deleteText);
				aTd.appendChild(aElement);
				
				/****************************************************/
				//创建<tr>
				var trElement=document.createElement("tr");
				
				//增加<td>到<tr>上
				trElement.appendChild(nameTd);
				trElement.appendChild(emailTd);
				trElement.appendChild(telTd);
				trElement.appendChild(aTd);
				
				/****************************************************/
				//增加<tr>到<table>上
				var tableElement=document.getElementById("usertable");
				//tableElement.appendChild(trElement);
				//由于部分IE浏览器显示不正常,为了兼容性,添加到tbody标签上
				//创建tbody,为了跨浏览器显示
				var tbodyElement=document.createElement("tbody");
				tbodyElement.appendChild(trElement);
				
				//放置tbody到table上
				tableElement.appendChild(tbodyElement);
				
				/****************************************************/
				//删除
				aElement.onclick=function(){
					//return false使网页的链接失效
					return delTr(aElement);
				}
				
				/****************************************************/
				function delTr(aELement){
					var name=aElement.parentNode.parentNode.firstChild.firstChild.nodeValue;
					var flag=window.confirm("您真的要删除["+name+"]吗?");
					//点击"取消"按钮
					if(!flag){
						return false;
					}
					
					/*删除*********************************************/
					//获取tbody
					var tbodyElement=aElement.parentNode.parentNode.parentNode;
					//获取tr
					var trElement=aElement.parentNode.parentNode;
					//删除
					tbodyElement.removeChild(trElement);
					//使网页的链接失效
					return false;
				}
			}
		}
		
	</script>
</html>

最终效果:
点击添加,添加成功!

点击"Delete"链接,删除成功!

转载请注明出处:http://blog.csdn.net/acmman/article/details/48010081

相关文章
|
16天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
2天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
9天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
15 0
|
9天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
14 4
|
16天前
|
JavaScript 前端开发
EasyUi js 加载数据表格DataGrid
EasyUi js 加载数据表格DataGrid
|
16天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
|
20天前
|
JavaScript
理解DOM树的加载过程(js的问题)
理解DOM树的加载过程(js的问题)
10 0
|
22天前
|
JavaScript 前端开发
深入了解 JavaScript 中的 DOM 和 BOM
深入了解 JavaScript 中的 DOM 和 BOM
17 4
|
29天前
|
JavaScript 前端开发 算法
深入探讨前端框架Vue.js中的虚拟DOM机制
本文将深入探讨前端框架Vue.js中的虚拟DOM机制,分析其原理、优势以及在实际开发中的应用场景,帮助读者更好地理解Vue.js框架的核心特性。
N..
|
30天前
|
JavaScript 前端开发 容器
jQuery中的DOM操作
jQuery中的DOM操作
N..
14 1