zoukankan      html  css  js  c++  java
  • JS表格小案例

    创建一个表单,根据表单填写内容,创建表格行内容,每行后面有删除按钮,删除后可以删除该行一个搜索文本框,输入内容,点击按钮显示当前模糊查找到所有内容,显示在表格内

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<style type="text/css">
    			table {
    				 800px;
    				border: 1px solid lightcoral;
    				border-collapse: collapse;
    			}
    		</style>
    	</head>
    
    	<body>
    		<input type="text" id="search" placeholder="search" />
    		<input type="button" value="搜索" id="find" />
    		<input type="text" id="name" placeholder="name" />
    		<input type="text" id="psd" placeholder="password" />
    		<input type="text" id="num" placeholder="number" />
    		<input type="button" value="提交" id="send" onclick="add()" />
    		<table id="tab">
    
    		</table>
    		<script type="text/javascript">
    			//				通过ID获取所有元素
    			var search = document.getElementById("search");
    			var find = document.getElementById("find");
    			var name1 = document.getElementById("name");
    			var psd1 = document.getElementById("psd");
    			var num1 = document.getElementById("num");
    			var send = document.getElementById("send");
    			var tab = document.getElementById("tab");
    			//				定义一个数组,用来存放所有的输入的对象
    			var arr = [];
    
    			function add() {
    				//					判断输入是否为空
    				if (name1.value && psd1.value && num1.value) {
    					//						定义对象存放输入的属性及属性值
    					var obj = {};
    					//					创建每行的tr以及删除键a
    					var tr = document.createElement("tr");
    					var aa = document.createElement("a");
    					aa.textContent = "Del";
    					tab.appendChild(tr);
    					//					向对象添加用户输入的属性及属性值
    					obj.name = name1.value;
    					obj.psd = psd1.value;
    					obj.num = num1.value;
    					//					遍历对象输出到每行的tr
    					for (var str in obj) {
    						var td = document.createElement("td");
    						td.textContent = str + " : " + obj[str];
    						tr.appendChild(td);
    					}
    
    					tr.appendChild(aa);
    					//					对删除键添加点击事件
    					aa.addEventListener("click", del);
    					//					创建点击事件,使tr删除
    					function del(e) {
    						e = e || window.event;
    						tr.remove();
    
    					}
    					//					每次执行后清空输入内容
    					name1.value = psd1.value = num1.value = "";
    					//					将每次的对象放入数组中
    					arr.push(obj);
    					//					console.log(arr);
    					//					为搜索键添加监听事件
    					find.addEventListener("click", clickHandler);
    					//					新建点击函数,遍历数组,查找搜索的关键字
    					function clickHandler(e) {
    						e = e || window.event;
    						var str = search.value;
    						var data = arr.filter(function (t) {
    							return t.name.indexOf(str) > -1;
    						});
    						//		            清空表格
    						tab.textContent = "";
    						//遍历数组对象
    						for (var j = 0; j < data.length; j++) {
    							//新建每一行
    							var tr = document.createElement("tr");
    							var aa = document.createElement("a");
    							aa.textContent = "Del";
    							tab.appendChild(tr);
    							//新建每行的每一项
    							for (var str in data[j]) {
    								var td = document.createElement("td");
    								td.textContent = str + " : " + data[j][str];
    								tr.appendChild(td);
    							}
    						}
    					}
    				} else {
    					alert("Error");
    				}
    			}
    		</script>
    	</body>
    
    </html>
  • 相关阅读:
    程序安装打包
    sql 2005 分页存储过程
    带线的无限级下拉树列表
    MapXtreme 2005 学习心得 概述(一)
    存储过程中用到的年,月,周的函数
    委托/事件/线程传参简单理解
    清除svn/vss小工具
    查看数据库连接数
    MapXtreme 2005 学习心得 使用WebTool工具(七)
    C#日期格式化
  • 原文地址:https://www.cnblogs.com/HelloWorld-Yu/p/10193695.html
Copyright © 2011-2022 走看看