用js来实现添加学生信息表
一准备工作
1.,两个lable,两个input,便于用户输入我们的姓名与年龄
2.一个button,用来添加点击事件
3.一个表格table,table中有一个表头thead,一个tbody
最终基本结构如代码所示:
<div><label for="">用户名:</label><input type="text" id="user"><label for="">年龄:</label><input type="text" id="age"><button id="btn">添加</button><table><thead><tr><th>编号</th><th>姓名</th><th>年龄</th><th>操作</th></tr></thead><tbody id="body"></tbody></table></div>
二.基本思路
构建好基本机构以后,我们来大致理顺一下我们的思路
1.给button定义一个点击事件,功能要求是点击button,在tbody中创建一行,并且在这一行中加入四个列
2.创建添加行的函数
3.创建添加列的函数
我们的大致思路就这么简单,接下来一步一步去实现吧!
三.实现功能
为了实现功能,我们由小到大来写代码
1.定义函数创建列
我们需要定义一个函数,他的功能就是可以创建一个列。
【分析】由于我们创建的这个列,有普通列,有特殊列,所以,我们可以用两个参数,来进行判断,是不是需要创建特殊列。
//创建列function createTd(islink, content) {var Td = document.createElement('td');//判断是不是添加链接列if (islink) {//创建链接var link = document.createElement('a');link.href = "javascript:void(0)";link.innerHTML = content;//把链接加入列Td.appendChild(link);//点击链接,删除行link.onclick = function () {if (confirm('确认删除?')) {var myTr=this.parentNode.parentNode;myTr.parentNode.removeChild(myTr);}}} else {Td.innerHTML = content;}return Td;}
【分析】考虑到有特殊列的生成,我们设定两个参数,第一个参数islink用来判断是否是特殊列,第二个参数是内容,在函数中判定如果是特殊列,先创建一个a,将content赋值到a的内容中,把这个a加入到我们创建的td中,如果不是特殊列,就直接将内容赋值给td的内容;
2.定义函数创建行
定义一个函数,创建一个行,在这个行中创建四个列,并将列加入到这个行中,调用1步骤中的函数;
代码如下所示:
//创建行function createTr(id,name,age) {var Tr = document.createElement('tr');//创建列var Td1=createTd(false,id);var Td2 = createTd(false, name);var Td3 = createTd(false, age);var Td4 = createTd(true, '删除');//把列加入行中Tr.appendChild(Td1);Tr.appendChild(Td2);Tr.appendChild(Td3);Tr.appendChild(Td4);return Tr;}
【分析】首先我们需要创建一个行tr,然后调用创建列的函数,创建四个列,其中前三个为正常列,第四个为特殊列,最后将创建的列加入到我们创建的行当中,返回我们创建的这个行;
3.给button建立点击事件
在点击事件中,调用创建行的函数,达成效果点击一次,创建一行;
【分析】
1).由于我们的输入框,姓名和年龄两栏,比如都有值才能将信息添加到列内,所有我们要判断姓名输入框和年龄输入框的值是否为空字符串,而且一般来说我们的姓名不是数字类型,而年龄都是数字类型,所有需要判断一下姓名和年龄输入框的值是不是数字;
2).当我们每点击一次,执行一遍函数,添加一行,需要将我们的姓名输入框和年龄输入框清空,以便于用户输入下一组数据
3).我们的第一列的内容是根据我们的行数来进行变化的,为了使内容的编号随着我们的行数的变化而变化,我们需要设定一个,使得每调用一次函数即每增加一行,我们的编号就加一,这样就实现了编号随着行数的变化来变化了。这样的好处是,即使我们删除了某一行,接下来添加将会编码延续增加,不会重置,给已删除的行留有空间;
btn.onclick = function () { if (user.value == '' || Age.value == '') {alert('您的输入有误,请重新输入');return;}var n = Number(user.value);var h=Number(Age.value);if(!isNaN(n)||isNaN(h)){alert('您的输入有误,请重新输入');return;}var Tr=createTr(i,user.value,Age.value);Body.appendChild(Tr);//编码根据点击行数增加i++;user.value='';Age.value='';}
注意:
在调用函数的最开始,我们需要先找到html中对应的id并重新来定义;
var btn = document.getElementById('btn');var Body = document.getElementById('body');var user = document.getElementById('user');var Age = document.getElementById('age');var i=0;
最终效果:
输入信息,点击添加,将信息加入重新创建的行中,可以实现删除效果。
四.总结
通过写这个案例,在这个案例中主要练习了DOM中节点的创建,添加,调用等知识,让我对节点的增删改查有了很深刻的了解。
用js来实现添加学生信息表相关推荐
- 页面显示格式化的时间、倒计时效果、学成在线案例(创建、添加节点)、学生信息表(重点)、5秒钟之后跳转页面(location.href应用)、学生信息表(页面刷新数据不丢失)(重点)——API练习案例
目录 1. 页面显示格式化的时间 2. 倒计时效果 3. 学成在线案例(创建节点.添加节点) 4.学生信息表案例(重点) 5. 5秒钟之后跳转页面(location.href的应用) 6. 学生信息表 ...
- JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)
文章目录 事件对象 获取事件对象 部分常用属性 事件流 事件捕获概念: 事件冒泡概念: 阻止事件流动: 相同的鼠标经过事件: 两种(监听事件)注册事件的区别: 传统on注册(L0) 事件监听注册(L2 ...
- 数据结构实验-学生信息表
(实验)自定义数据元素的类型和存储结构(顺序表或链表均可),完成如下的功能: ①录入:从键盘输入学生信息表的各个数据元素(至少包含学号,姓名,年龄,语文成绩,数学成绩,英语成绩): ②查找:可按学号查 ...
- navicat的使用以及学生信息表的操作
目录 一.navicat的使用 创建数据库 删除数据库 数据库的导入导出 数据库中表操作 创建表结构 数据表的管理操作 二.学生信息表基础操作练习 一.navicat的使用 点击connection, ...
- VLOOKUP函数制作多表查询(学生信息表/员工工资表)
VLOOKUP函数制作多表查询(学生信息表/员工工资表) 一.vlookup函数定义 VLOOKUP函数是Excel中的一个纵向查找函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导 ...
- javascript+css学生信息表综合案例(附详细代码)
本文主要实现:通过获取input框value值,并将数据渲染到表格中,自动生成对应的学生信息表,同时可以删除相应的信息. <!DOCTYPE html> <html lang=&qu ...
- SQL练习题 (学生信息表 教师信息 课程信息等)
– 创建学生信息表 CREATE TABLE Student( Sid VARCHAR(10), Sname VARCHAR(10), Sage datetime, Ssex VARCHAR(10) ...
- 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)
目录 数据库实验(学生信息表) 实验一 实验二 实验三 实验四 数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno ch ...
- 怎么在mysql创建数据库怎么加入学号_数据库怎么创建学生信息表
语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 数据库创建学生信息表的方法是: 1.新建表:单击数据库"studentDb"前图标,然后右键&qu ...
- mysql实验学生表_数据库实验(学生信息表)
数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno char(9) primary key, Sname char(20 ...
最新文章
- JavaScript操作select标签详解
- MySQL分组查询—添加排序
- 【Python】APScheduler定时任务
- anaconda在ubuntu中添加环境变量
- 用Java描述数据结构之二叉树,前序遍历,中序遍历,后序遍历
- js 判断图片是否加载完成
- swift简介(东拼西凑,看看就的了)
- How many ways?? - hdu2157(矩阵快速幂-模板)
- bzoj1835基站选址(dp+线段树)
- arm64位的Centos7镜像安装JDK
- java经典算法(七)---zws
- 简化“复杂”的层级管理,实现团队作战式的目标协同
- 深度学习的四种激活函数
- 摄像头参数详细介绍[转]
- 学习opencv:PS滤镜—浮雕
- 341.基于高通量测序的微生物组研究技术简介
- kotlin的入口函数
- Oracle--加锁的方法
- OKI C330dn 激光打印机驱动
- Android导航语音识别——读后听写语音识别(嵌入式)
热门文章
- 基于深度学习生成音乐
- 大文件上传NeatUpload简单用法nbsp;(…
- HTML5七夕情人节表白网页制作【流星动画3D相册】HTML+CSS+JavaScript
- mmap文件内存映射
- .mmap文件用什么软件可以打开?
- 使用Python采集淘宝类目数据并进行数据分析
- 大学本科 java教材_Java程序设计(21世纪大学本科计算机专业系列教材普通高等
- 23种设计模式总结+清晰图解(必收藏)
- iPhone如何截长图?iPhone长截图教程
- android模拟器模拟nfc功能吗,android – 开始使用NFC模拟器