使用DOM对表格进行增删
---恢复内容开始---
声明本文旨在练习dom 其中可以链接数据 或者使用ajax 实现的我全用的dom因为我在学dom。
一、 表格构建
<section id="section_tableUser">
<table id="myTable">
<tbody>
<th colspan="4">
<font color="coral">用户管理系统</font>
</th>
<tr align="center">
<td class=" header check" id="checks"><input type="checkbox" value="" /></td>
<td class="header">用户名</td>
<td class="header bigtd">地址</td>
<td class="header ">电话</td>
<td class="header remark">备注</td>
</tr>
<tr class="tr-one" id="row_1">
<td class="check" id="checks"><input type="checkbox" name="checks" value="1" /></td>
<td>Tom</td>
<td class="bigtd">济南市长清区大学路0001号</td>
<td >123789</td>
<td class="remark"></td>
</tr>
<tr class="tr-two" id="row_2">
<td class="check" id="checks"><input type="checkbox" name="checks" value="2" /></td>
<td>Jack</td>
<td class="bigtd">北京市东城区前门大街0001号</td>
<td >123456</td>
<td></td>
</tr>
<tr class="tr-one" id="row_3">
<td class="check" id="checks"><input type="checkbox" name="checks" value="3" /></td>
<td>Linda</td>
<td class="bigtd">南京市栖霞区玄武大道0001号</td>
<td >123678</td>
<td></td>
</tr>
<tr class="tr-two"id="row_4">
<td class="check" id="checks"><input type="checkbox" name="checks" value="4" /></td>
<td>Maria</td>
<td class="bigtd">深圳市罗湖区深南东路0001号</td>
<td >123567</td>
<td></td>
</tr>
<tfoot>
<tr>
<td colspan="5">
<div id="crudOperation">
<button type="button" id="btnAddition">新增</button>
</div>
<div id="delOperation">
<button type="button" id="btnDelete">删除</button>
</div>
<div id="pageOperation">
<button type="button" style="margin:5px 1px;">1</button>
<button type="button" style="margin:5px 1px;">2</button>
<button type="button" style="margin:5px 1px;">3</button>
<button type="button" style="margin:5px 1px;">4</button>
<button type="button" style="margin:5px 1px;">5</button>
<input type="text" id="" style="width:15px"><button type="button" style="margin:5px 1px;">go</button>
</div>
</td>
</tr>
</tfoot>
</tbody>
</table>
</section>
说明:css 我是单独写的我在这里就不再附加了 代码太多太乱
1.所有的input也就是选择框我用value="x"标注了从1往后推。
2.所有的 tr <tr class="tr-one" id="row_1">从数据行开始 row_xx
目的是方便dom操作。
二、数据删除

我的思路用上面的百度脑图都写出来了。
/*感觉这是最贴心的注释了
时间 :17/08/05 */
function dele(){ var btnCheck=document.getElementsByName("checks");//获取所有选择框存在 var isCheck ="";//设置一个变量赋空值
btnCheck.forEach((item)=>{ //遍历我收集的选择框数据
if(item.checked==true){ //checked 属性设置或返回 checkbox 是否应被选中。
alert("确定要删除数据?");
if(isCheck ==""){ //给isChenk赋值 值为value;
isCheck+=item.value
}else{
isCheck = ",";
isCheck+=item.value;
}
}
});
if(isCheck==""){ //这个就是没有选择选择框
alert("请选择要删除的数据");
}else{
if(confirm("确定删除吗?")){
let arrays=isCheck.split(","); //用,分割isCheck split() 方法用于把一个字符串分割成字符串数组。
arrays.forEach((item)=>{
let index=document.getElementById("row_"+item).rowIndex; //获取下标 我建表已经表好了哈哈哈
document.getElementById("myTable").deleteRow(index); //deleteRow() 方法用于从表格删除指定位置的行
}); }
}
}
三、增加新的数据
function add(){
var userName = document.getElementById("add_username").value; //这个四个就是获取
var address = document.getElementById("add_address").value;
var phoneNumber = document.getElementById("add_phoneNumber").value;
var remak = document.getElementById("add_remark").value;
document.getElementById("section_tableUser").hidden=false; //表格显示
document.getElementById("section_addUser").hidden.true; //表格隐藏
let table=document.getElementById("myTable"); //获取原表格
let len=table.rows.length; //获取表格长途
let maxNumber=parseInt(table.rows[len-1].id.substring(4))+1;//获取插入row_xx这个xx
let row=table.insertRow(len-1); //在len-1插入新的一行
row.class= "add"; //行的类 我原本想添加样式的失败我回头学学
row.id="row_"+maxNumber; //id
let cell0=row.insertCell(0); //单元格第一个插入
let input = document.createElement("input");//插入一个input 标签
input.value=maxNumber; //input value
input.type="checkbox";
input.name="checks";
cell0.appendChild(input); //下面 就是添加表格信息
row.insertCell(1).innerHTML=userName;
row.insertCell(2).innerHTML=address;
row.insertCell(3).innerHTML=phoneNumber;
row.insertCell(4).innerHTML=remak
}
所有解释我写在注释里面 四、对按钮添加监听事件

同样写在注释里面
function init(){
document.getElementById("add_btn_addUser").addEventListener("click",add,false); //增加按钮添加监听事件
document.getElementById("btnDelete").addEventListener("click",dele,false);//删除按钮添加监听事件
document.getElementById("btnAddition").addEventListener("click",()=>{ //提交按钮监听事件
document.getElementById("section_tableUser").hidden=true; //用户表隐藏
document.getElementById("section_addUser").hidden=false;//添加表显示
},false);
}
window.addEventListener("load",init,false);
五、总结
①首先是监听事件.addEventListener("click",add,false); false是代表冒泡
addEventListener() 方法用于向指定元素添加事件句柄。
提示: 使用 removeEventListener() 方法来移除 addEventListener() 方法添加的事件句柄。
② forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
③ deleteRow() 方法用于从表格删除指定位置的行
④hidden 属性规定对元素进行隐藏。
隐藏的元素不会被显示。
如果使用该属性,则会隐藏元素。
可以对 hidden 属性进行设置,使用户在满足某些条件时才能看到某个元素(比如选中复选框,等等)。
⑤substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
⑥insertRow() 方法用于在表格中的指定位置插入一个新行。
⑦createElement() 方法通过指定名称创建一个元素
⑧appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。
提示:如果文档树中已经存在了 newchild,它将从文档树中删除,然后重新插入它的新位置。如果 newchild 是 DocumentFragment 节点,则不会直接插入它,而是把它的子节点按序插入当前节点的 childNodes[] 数组的末尾。
你可以使用 appendChild() 方法移除元素到另外一个元素。
⑨insertCell() 方法用于在 HTML 表的一行的指定位置插入一个空的 <td> 元素
六 思维导图和demo
demo 这是个链接

使用DOM对表格进行增删的更多相关文章
- DOM操作表格
前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量 ...
- 采用DOM进行表格的修改操作
2015-08-31 <html> <head> <title>采用DOM进行表格的修改操作</title> <script language=& ...
- DOM系列---DOM操作表格
DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是H ...
- 第一百一十五节,JavaScript,DOM操作表格
JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...
- DOM操作表格——HTML DOM
html创建表格: <table berder='1' width='300'> <thead> <tr> <th>姓名</th> < ...
- DOM拓展表格小练习
涉及的知识点 DOM操作HTML页面.DOM操控表格.一些基本的事件.遍历知识.数组字符串知识.函数的作用域知识 效果图 html代码 <body><div id="con ...
- JavaScript(第二十天)【DOM操作表格及样式】
DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table& ...
- Javascript高级编程学习笔记(45)——DOM 操作表格及DOM动态集合
操作DOM表格 早些时候,HTML 还是以表格布局为主, 所以DOM操作表格是比较重要的一点 但是现如今 有其它的选择,所以表格的操作也就慢慢地淡出了人们的视线 所以这里也就不过多去详细展开,这里也就 ...
- DOM中表格的操作方法总结
DOM中表格的操作方法总结 <table/>元素的方法如下: caption:指向<caption/>元素(如果存在): tBodies:<tbody/>元素的集合 ...
随机推荐
- windows下使用xerces -c解析XML
windows下使用Xerces-C++解析XML 前景提要 最近工作中遇到收到的数据为xml格式的情况,考虑到xml解析应该是个很常用的功能,应该有开源的lib库可以使用,于是就在网上找了找,果然发 ...
- Python学习系列----第五章 模块
5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: ...
- Java常用Json库性能对比
Java对于处理JSON数据的序列化与反序列化目前常用的类库有Gson.FastJSON.Jackson.jettison以及json-lib.在这里我们将对这些类库在json序列化与反序列化方面的性 ...
- python在Android下的自动化测试用法
# This Python file uses the following encoding: utf-8from com.android.monkeyrunner import MonkeyRunn ...
- mvc4站点支持.html
MVc站点在配置通配符后,还需要配置这个才能支持.html.在自定义的路由中加入.自定义代码就可以支持子定义的html了.
- 通过 PowerShell 的方式增加虚拟机终结点
关于虚拟机终结点的概念请阅读:如何设置虚拟机的终结点 本文包含以下内容(本文在名称为"pstest"的虚拟机做测试): 通过 PowerShell 的方式增加终结点 通过 Powe ...
- 文件读取方法(FileHelpers) z
using System; using System.Collections.Generic; using System.Linq; using System.Text; using FileHelp ...
- python下的selenium安装
安装python 打开 Python官网,找到“Download”, 在其下拉菜单中选择自己的平台(Windows/Mac),一般的Linux平台已经自带的Python,所以不需要安装,通过打开“终端 ...
- centos开启IPV6配置方法
目前国内大部分服务器和PC不支持IPV6地址的,但是服务器上本身是可以正常开启IPV6服务,有部分程序在服务器上运行的时候,需要服务器能监听一个ipv6地址才行,因此本文档指导如何在centos服务器 ...
- jsencrypt代码分析——openssl的rsa加密解密在js的实现
在js上做rsa,感觉jsencrypt这个是封装的比较好的,但用起来还是遇到了些坑,所以踩进代码里填填坑- 项目在这里 https://github.com/travist/jsencrypt [r ...
