一准备工作

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来实现添加学生信息表相关推荐

  1. 页面显示格式化的时间、倒计时效果、学成在线案例(创建、添加节点)、学生信息表(重点)、5秒钟之后跳转页面(location.href应用)、学生信息表(页面刷新数据不丢失)(重点)——API练习案例

    目录 1. 页面显示格式化的时间 2. 倒计时效果 3. 学成在线案例(创建节点.添加节点) 4.学生信息表案例(重点) 5. 5秒钟之后跳转页面(location.href的应用) 6. 学生信息表 ...

  2. JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)

    文章目录 事件对象 获取事件对象 部分常用属性 事件流 事件捕获概念: 事件冒泡概念: 阻止事件流动: 相同的鼠标经过事件: 两种(监听事件)注册事件的区别: 传统on注册(L0) 事件监听注册(L2 ...

  3. 数据结构实验-学生信息表

    (实验)自定义数据元素的类型和存储结构(顺序表或链表均可),完成如下的功能: ①录入:从键盘输入学生信息表的各个数据元素(至少包含学号,姓名,年龄,语文成绩,数学成绩,英语成绩): ②查找:可按学号查 ...

  4. navicat的使用以及学生信息表的操作

    目录 一.navicat的使用 创建数据库 删除数据库 数据库的导入导出 数据库中表操作 创建表结构 数据表的管理操作 二.学生信息表基础操作练习 一.navicat的使用 点击connection, ...

  5. VLOOKUP函数制作多表查询(学生信息表/员工工资表)

    VLOOKUP函数制作多表查询(学生信息表/员工工资表) 一.vlookup函数定义 VLOOKUP函数是Excel中的一个纵向查找函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导 ...

  6. javascript+css学生信息表综合案例(附详细代码)

    本文主要实现:通过获取input框value值,并将数据渲染到表格中,自动生成对应的学生信息表,同时可以删除相应的信息. <!DOCTYPE html> <html lang=&qu ...

  7. SQL练习题 (学生信息表 教师信息 课程信息等)

    – 创建学生信息表 CREATE TABLE Student( Sid VARCHAR(10), Sname VARCHAR(10), Sage datetime, Ssex VARCHAR(10) ...

  8. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)

    目录 数据库实验(学生信息表) 实验一 实验二 实验三 实验四 数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno ch ...

  9. 怎么在mysql创建数据库怎么加入学号_数据库怎么创建学生信息表

    语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 数据库创建学生信息表的方法是: 1.新建表:单击数据库"studentDb"前图标,然后右键&qu ...

  10. mysql实验学生表_数据库实验(学生信息表)

    数据库实验(学生信息表) 实验一 创建数据库以及学生信息表.课程信息表.选课表 create Table student (Sno char(9) primary key, Sname char(20 ...

最新文章

  1. JavaScript操作select标签详解
  2. MySQL分组查询—添加排序
  3. 【Python】APScheduler定时任务
  4. anaconda在ubuntu中添加环境变量
  5. 用Java描述数据结构之二叉树,前序遍历,中序遍历,后序遍历
  6. js 判断图片是否加载完成
  7. swift简介(东拼西凑,看看就的了)
  8. How many ways?? - hdu2157(矩阵快速幂-模板)
  9. bzoj1835基站选址(dp+线段树)
  10. arm64位的Centos7镜像安装JDK
  11. java经典算法(七)---zws
  12. 简化“复杂”的层级管理,实现团队作战式的目标协同
  13. 深度学习的四种激活函数
  14. 摄像头参数详细介绍[转]
  15. 学习opencv:PS滤镜—浮雕
  16. 341.基于高通量测序的微生物组研究技术简介
  17. kotlin的入口函数
  18. Oracle--加锁的方法
  19. OKI C330dn 激光打印机驱动
  20. Android导航语音识别——读后听写语音识别(嵌入式)

热门文章

  1. 基于深度学习生成音乐
  2. 大文件上传NeatUpload简单用法nbsp;(…
  3. HTML5七夕情人节表白网页制作【流星动画3D相册】HTML+CSS+JavaScript
  4. mmap文件内存映射
  5. .mmap文件用什么软件可以打开?
  6. 使用Python采集淘宝类目数据并进行数据分析
  7. 大学本科 java教材_Java程序设计(21世纪大学本科计算机专业系列教材普通高等
  8. 23种设计模式总结+清晰图解(必收藏)
  9. iPhone如何截长图?iPhone长截图教程
  10. android模拟器模拟nfc功能吗,android – 开始使用NFC模拟器