JS表格小案例

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

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			table {
				width: 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>

原文地址:https://www.cnblogs.com/HelloWorld-Yu/p/10177674.html

时间: 2024-11-05 23:32:27

JS表格小案例的相关文章

js经典小案例----乘法表

<style> #output span { display: inline-block; width: 100px; height: 40px; margin: 5px; line-height: 40px; text-align: center; background-color: #ccc; } #output span:hover { background-color: #fc0; color: #fff; } </style> </head> <body

js - 面向对象 - 小案例:轮播图、随机点名、选项卡、鼠标拖拽

面向对象 对象 : (黑盒子)不了解内部结构, 知道表面的各种操作. 面向对象 : 不了解原理的情况下 会使用功能 . 面向对象是一种通用思想,并非编程中能用,任何事情都能用. 编程语言的面向对象的特点: ? 封装 : 看不到里面的东西 , 用好表面功能. ? 继承 : 从父类继承一些方法 , 属性 , 子类又有一些新的特性. ? 多态 ? 抽象 : 抽取一个功能里面多个核心的功能模块. ? 思想: 高内聚.低耦合 ? 低耦合 :每个功能模块之间耦合度要低 ? 高内聚 :模块内部要紧密相连 面向

node.js(小案例)_实现学生信息增删改

一.前言 本节内容主要对小案例做一个总结: 1.如何开始搭建小项目 2.路由设计 3.模块应用 4.项目源码以及实现过程github地址: 项目演示如下: 二.主要内容 1.项目的关键性js源码: 项目的入口: /** * app.js 入门模块 * 职责: * 创建服务 * 做一些服务相关配置 * 模板引擎 * body-parser 解析表单 post 请求体 * 提供静态资源服务 * 挂载路由 * 监听端口启动服务 */ var express = require('express') v

JS小案例分析

a.微博输入删除小案例 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } ul { list-style: none; } .box { width: 600px; margin: 100px auto; b

iview表格render小案例2

马上10.1了,在这里祝大家国庆节快乐,预祝我的祖国繁荣昌盛 iview表格render小案例2 这次是后端数据取出来比较复杂所以才这么写的 { title: "场馆名称", 这里应该会有一个key值,这次渲染数据删掉了 width: 200, render: (h, params) => { return h( "div", { style: { width: "100%", textAlign: "center" }

小案例带你揭秘JS事件

小案例带你揭秘JS事件 ### 什么是事件? 在js中一个事件的组成由那些呢? 谁触发事件:事件源 触发什么事件: 事件的类型 触发事件干什么事:事件处理函数 事件传播的过程 捕获阶段 就是从window事件处理函数开始,依次向内,只要事件目标的事件处理函数都会执行 执行顺序是从上到下的函数执行顺序 目标阶段 你触发在哪个元素上那么这个事件的目标源就是谁 冒泡阶段 从事件目标的时间处理函数开始,依次向外,知道window的事件处理函数触发 执行顺序是从内到外的 事件委托 就是我们把要做的事情委托

JS高级---闭包小案例

闭包小案例 普通的函数 //普通的函数 function f1() { var num = 10; num++; return num; } console.log(f1()); //11 console.log(f1()); //11 console.log(f1()); //11 函数模式的闭包 //函数模式的闭包 function f2() { var num = 10; return function () { num++; return num; } } var ff = f2();

网易新闻小案例

抓取网易新闻的接口,用代理服务器解决跨域,在前端页面上展示. 需要的文件有: index.html,app.js, headLine.html,headlineController.js, detail.html,detailController.js, 引入js文件:angular.js和angular-route.js, 服务器:nodePost.js. index.html内容,主界面显示,引入需要的文件 <!DOCTYPE html> <html ng-app="myA

Cookie插件小案例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc