查看本章节

查看作业目录


需求说明:

在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接,使用 DOM 节点的删除操作将对应的行数据删除

  • 在文本输入框中输入姓名、年龄、班级和手机号,并选择性别
  • 点击“插入数据”按钮,将输入框中的数据插入到表格中,表格中的数据将增加一条
  • 点击表格中每条数据后的“删除”超链接,将删除该条数据,表格中的数据将减少一条

实现思路:

  1. 在页面中绘制表格,并添加 4 条虚拟数据,在每条数据后使用超链接,并且添加超链接的点击事件
  2. 在页面中添加文本输入框和选项菜单,并提示用户输入,添加“插入数据”按钮,并添加点击事件
  3. 在“插入数据”按钮的事件处理函数中,使用 document 对象的 getElementById、getElementsByTagName等属性获取输入框的值
  4. 使用 createElement 创建元素,使用 innerHTML 为元素设置文本,使用 appendChild 将创建的元素添加到 table 中
  5. 在“删除”超链接的事件处理函数中,获取超链接的父节点 td,继续获取父节点 tr,再获取父节点 table,然后将 table 节点中的 tr 节点删除

实现代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table border="1" id="tb">
<tr>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>班级</th>
<th>电话</th>
<th>操作</th>
</tr>
<tr>
<td>张三</td>
<td>男</td>
<td>25</td>
<td>软件1班</td>
<td>138xxxx0987</td>
<td><a href="#" onclick="del(this)">删除</a></td>
</tr>
<tr>
<td>李四</td>
<td>女</td>
<td>24</td>
<td>软件2班</td>
<td>136xxxx8766</td>
<td><a href="#" onclick="del(this)">删除</a></td>
</tr>
<tr>
<td>王五</td>
<td>男</td>
<td>26</td>
<td>计科1班</td>
<td>199xxxx8867</td>
<td><a href="#" onclick="del(this)">删除</a></td>
</tr>
<tr>
<td>赵六</td>
<td>女</td>
<td>23</td>
<td>计科2班</td>
<td>188xxxx9965</td>
<td><a href="#" onclick="del(this)">删除</a></td>
</tr>
</table>
<p>
<input type="text" id="name" placeholder="请输入姓名"/>
<select>
<option>男</option>
<option>女</option>
</select>
<input type="text" id="age" placeholder="请输入年龄" />
<input type="text" id="cls" placeholder="请输入班级" />
<input type="text" id="mobile" placeholder="请输入手机号" />
<input type="button" value="插入数据" onClick="insert()" />
</p>
<script type="text/javascript">
function insert(){
var sel=document.getElementsByTagName("select")[0];
var gender=sel.options[sel.selectedIndex].text;
var age=document.getElementById("age").value;
var cls=document.getElementById("cls").value;
var mobile=document.getElementById("mobile").value;
var name=document.getElementById("name").value;
var arrays=new Array(name,gender,age,cls,mobile);
var tb=document.getElementById("tb");
var cols=tb.getElementsByTagName("th");
var newtr=document.createElement("tr");
for (var i=0;i<cols.length;i++) {
if(i==cols.length-1) {
var td=document.createElement("td");
var a=document.createElement("a");
a.innerHTML="删除";
a.onclick=function(){
a.parentNode.parentNode.parentNode.removeChild(a.parentNode.parentNode); }
a.setAttribute("href","#");
td.appendChild(a);
newtr.appendChild(td);
}else{
var td=document.createElement("td");
td.innerHTML=arrays[i];
newtr.appendChild(td);
}
}
tb.appendChild(newtr);
console.log(newtr)
}
function del(obj){
var tr=obj.parentNode.parentNode;
if (tr!=null) {
tr.parentNode.removeChild(tr);
}
}
</script>
</body>
</html>

在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接的更多相关文章

  1. 如果dom节点是动态添加进页面的,在页面节点绑定事件如何解决的问题。

    如果dom节点是动态添加进页面,想在节点绑定事件,传统的做法就是遍历节点,但会出现问题,也肯能有其他的办法,突然想到 可以依据事件冒泡,这样就不惧页面后添加节点而不响应事件的问题.比较结实.示例代码如 ...

  2. c#导出ListView中的数据到Excel表格

    1.添加组件:Microsoft.Office.Interop.Excel 步骤:右键点击“引用”--->添加引用--->COM--->Microsoft.Office.Intero ...

  3. jstl-将List中的数据展示到表格中

    功能: 使用jstl将List中的数据动态展示到Jsp表格中,并实现隔行换色功能. 效果图: Jsp代码: <%@ page import="java.util.ArrayList&q ...

  4. Raphaël 是一个小型的 JavaScript 库,用来简化在页面上显示向量图的工作。你可以用它在页面上绘制各种图表、并进行图片的剪切、旋转等操作。

    点这里 在线效果演示:http://raphaeljs.com/pie.html http://raphaeljs.com github: https://github.com/DmitryBaran ...

  5. 在java中实现数据导入excel表格中

    1.首先前端代码如下: 一个导出按钮:<input id="export" class="btn btn-primary" type="butt ...

  6. JSP+JDBC实现在可视化页面中插入数据到SQL数据库

    原创 本篇博客创建一个如下图所示的JSP页面,将用户填入的数据插入到对应的数据库中. JSP页面代码: <%@ page language="java" contentTyp ...

  7. Markdown中插入复杂的合并表格方法

    由于Markdown自身的语法限制,不能直接插入有合并单元格的复杂表格. 姓名 学号 专业 张三 2018123456 计算机 赵四 2018222356 自动化 李六 2018666666 信息工程 ...

  8. hive向表格中插入数据并分析语句

    1,---导入mds_imei_month_info ; //最大的动态分区表 set hive.support.concurrency=false; //是否支持并发 ; //each mapper ...

  9. [译]使用Continuous painting mode来分析页面的绘制状态

    Chrome Canary(Chrome “金丝雀版本”)目前已经支持Continuous painting mode,用于分析页面性能.这篇文章将会介绍怎么才能页面在绘制过程中找到问题和怎么利用这个 ...

随机推荐

  1. tomcat之nginx调度

    # :安装nginx [root@nginx ~]# yum install nginx -y #配置 [root@nginx ~]# vim /etc/nginx/nginx.conf upstre ...

  2. Spring标签库

    spring提供了两个标签库文件:spring-form.tld(表单标签库,用于输出HTML表单)  spring.tld(基础标签库,用于Spring数据绑定等) 使用步骤: 1,配置表单标签库, ...

  3. 重量级&轻量级

    重量级 就是说包的大小,还有就是与个人项目的耦合程度,重量级的框架与项目耦合程度大些 代表EJB容器的服务往往是"买一送三",不要都不行 轻量级 就是相对较小的包,当然与项目的耦合 ...

  4. Controller返回类的自动识别,WEB-INF,jsp位置

    Controller: @Controller@RequestMapping("/params")public class ParamsController { @RequestM ...

  5. SQLServer和java数据类型的对应关系

    转载自:https://www.cnblogs.com/cunkouzh/p/5504052.html SQL Server 类型 JDBC 类型 (java.sql.Types) Java 语言类型 ...

  6. java基础---局部变量和全局变量

    1.成员变量的概念: 成员变量就是属于类的变量,在类中,方法体外定义的变量 1)成员变量又分为两种: 类变量(又称静态变量) 实例变量(又称非静态变量) 类变量(静态变量)   :是被static所修 ...

  7. JavaMoney规范(JSR 354)与对应实现解读

    一.概述 1.1 当前现状 当前JDK中用来表达货币的类为java.util.Currency,这个类仅仅能够表示按照**[ISO-4217]**描述的货币类型.它没有与之关联的数值,也不能描述规范外 ...

  8. vue双向绑定和深浅拷贝

    现象描述: vue 在使用的时候,当table绑定了某个data的时候.假如某个el-table-column下面的有个方法传参(data.row),然后在方法中用一个obj=data.row.(这里 ...

  9. Position定位详解

    Position CSS position属性用于指定一个元素在文档中的定位方式.top,right,bottom 和 left 属性则决定了该元素的最终位置. 在分析position元素定位之前,先 ...

  10. CF330A Cakeminator 题解

    Content 有一个 \(r\) 行 \(c\) 列的矩形蛋糕,由 \(r\times c\) 块 \(1\times 1\) 的蛋糕组成,其中有几块蛋糕上有一些草莓.你不喜欢吃草莓,又想吃得很爽, ...