js的动态表格的增删改查完整代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
table{
position: relative;
}
.head{
width: 700px;
height: 50px;
margin: 25px auto;
/*border:1px solid red;*/
}
.but{
margin-left: 500px;
}
td{
text-align: center;
line-height: 50px;
font-size: 20px;
font-weight:bold;
width: 120px;
height:30px;
border:1px solid black;
}
.box{
width: 250px;
height: 250px;
border:1px solid black;
position: absolute;
background-color: red;
text-align: right;
top:200px;
left: 800px;
display: none;
z-index: 100;
}
.box>button{
margin-top:10px;
}
</style>
</head>
<body>
<div class="head">
联系电话:<input type="text" name="" class="phone"> <button class="button">查询</button></br>
<button class="but">删除</button>
<button class="but1">添加</button>
</div>
<div class="box">
<form >
姓名:<input type="text" name="" placeholder="请输入姓名" class="int"><br>
性别:<input type="text" name="" placeholder="男/女" class="int"><br>
年龄:<input type="text" name="" placeholder="请输入年龄" class="int"><br>
联系电话:<input type="text" name="" placeholder="请输入电话" class="int"><br>
籍贯:<input type="text" name="" placeholder="请输入籍贯" class="int"><br>
简介:<input type="text" name="" placeholder="简介" class="int"><br>
入职时间:<input type="text" name="" placeholder="请输入入职时间" class="int">
</form>
<button class="box1">清空</button>
<button class="box2">确定</button>
<button class="box3">添加</button>
<button class="box4">取消</button>
</div>


<script src="01.js"></script>
</body>
</html>

var data = [
{"姓名":"张三","性别":"男","年龄":20,"联系电话":13076752470,"籍贯":"湖北","简介":"没有","入职时间":"2011年"},
{"姓名":"赵晓晓","性别":"女","年龄":19,"联系电话":15921347851,"籍贯":"湖南","简介":"没有","入职时间":"2011年"},
{"姓名":"钱书怡","性别":"女","年龄":21,"联系电话":17254863571,"籍贯":"北京","简介":"没有","入职时间":"2011年"},
{"姓名":"周明","性别":"男","年龄":25,"联系电话":15767546842,"籍贯":"浙江","简介":"没有","入职时间":"2011年"},
{"姓名":"王五","性别":"男","年龄":34,"联系电话":12474855680,"籍贯":"天津","简介":"没有","入职时间":"2011年"},
{"姓名":"郑梦","性别":"男","年龄":25,"联系电话":15124875401,"籍贯":"河北","简介":"没有","入职时间":"2011年"},
];

var bodys = document.body;
var table = document.createElement("table");
bodys.appendChild(table);
table.style.width="1080px";
// table.style.height="1000px";
table.style.margin="0 auto";
table.style.border="1px solid black";
function ayy(data){
document.getElementsByTagName('table')[0].innerHTML = '';
var thead = document.createElement("thead");
table.appendChild(thead);

//添加表头
for(key in data[0]){
var td = document.createElement("td");
td.innerHTML=key;
var a=thead.appendChild(td);
}
var tbody = document.createElement("tbody");
table.appendChild(tbody);
tbody.className="a";


//添加内容
for(var i=0;i<data.length;i++){
var tr=document.createElement("tr");
var s = tbody.appendChild(tr);
tr.style.width="1080px";
tr.style.height="30px";
tr.style.border="1px solid black";
for(var j in data[i]){
var td =document.createElement("td");
td.innerHTML = data[i][j];
var c=tr.appendChild(td);
}
}

//追加全选
var tables= document.getElementsByTagName("table")[0].firstElementChild.firstElementChild
var tds =document.createElement("td");
tds.innerHTML = '<input type="checkbox" class="a"/>全选';
thead.insertBefore(tds,tables);
tds.className="all";

//追加操作
var tables= document.getElementsByTagName("table")[0].firstElementChild.firstElementChild
var tds1 =document.createElement("td");
tds1.innerHTML = '操作';
thead.appendChild(tds1);

//追加单个input的框;
var a=document.getElementsByTagName('tbody')[0].children;
for(var j=0;j<a.length;j++){
var trs= a[j].firstElementChild;
var tdss =document.createElement("td");
tdss.innerHTML = '<input type="checkbox"/>';
a[j].insertBefore(tdss,trs);
tdss.className="chb";
}
//追加删除和修改
var a=document.querySelectorAll(".a tr");
for(var j=0;j<a.length;j++){
var trs= a[j].firstElementChild;
var tdss1 =document.createElement("td");
tdss1.innerHTML = '<button class="but1">修改</button></br><button class="but2">删除</button>';
a[j].appendChild(tdss1);
}


//全选事件
var all = document.querySelector("thead>td:first-child>input");
// 找到table下面thead下第一个td中的input,为其绑定单击事件
all.onclick= function(){
var chb=document.querySelectorAll("table>tbody>tr>td:first-child>input");
// 获取table下tbody下所有第一个td中的input
for(var i= 0;i<chb.length;i++){
// 遍历chb数组中每个chb
chb[i].checked=this.checked;
// 让每一个chb的状态都跟All得状态一样
}
}

// 单个选中取消操作
var chb=document.querySelectorAll("table>tbody>tr>td:first-child>input");
// 找到table下tbody下的所有第一个td中的input 保存在chbs
for(var i=0;i<chb.length;i++){
// 遍历chb数组中每个chb
chb[i].onclick=function(){
// 为当前chb绑定单击事件
if(!this.checked){
// 如果当前chb未选中
all.checked=false;
// all修改为未选中
}
else{
var unSel = document.querySelectorAll("table>tbody td:first-child>input:not(:checked)");
// 获得table中tbody下所有第一个td中的未选中的input unSel
if(unSel.length==0){
// 如果unSel的length是等于0
all.checked=true;
// all修改为选中
}else{
all.checked=false;
// all修改为未选中
}
}
}
}

//修改事件
var but1= document.getElementsByClassName("but1");
// console.log(but1);
for(var j=0;j<but1.length;j++){
but1[j].onclick = fun
}

//删除事件
var but2 = document.getElementsByClassName("but2");
for(var i = 0;i<but2.length;i++){
but2[i].onclick = fun2;
}
}

ayy(data)

function fun(){
document.getElementsByClassName("box")[0].style.display = "block";
var tr= this.parentNode.parentNode;
var td = tr.getElementsByTagName("td");
var input = document.getElementsByClassName("int");
// console.log(input)
for (var i = 0;i < input.length;i++) {
input[i].value = td[i+1].innerHTML;
}

//确定
var box2 = document.getElementsByClassName("box2")[0];
box2.onclick = function(){
document.getElementsByClassName("box")[0].style.display = "none";
// var tr= document.getElementsByTagName("tr");
// for(var n = 0;n<tr.length;n++){
var td = tr.getElementsByTagName("td");
// }
var input = document.getElementsByClassName("int");
for (var i = 0;i<input.length;i++){
td[i+1].innerHTML = input[i].value;
}
}
}
//清空
var box1 = document.getElementsByClassName("box1")[0];
box1.onclick =function(){
var input = document.getElementsByClassName("int");
for (var i = 0;i < input.length;i++) {
input[i].value = "";
}
}
//删除

function fun2(){
var tr= this.parentNode.parentNode;
// console.log(tr);
var a =document.getElementsByTagName("tbody")[0];
// console.log(a);
a.removeChild(tr)
alert("是否删除!");
}

// 取消
var box4 = document.getElementsByClassName("box4")[0];
box4.onclick = function(){
document.getElementsByClassName("box")[0].style.display = "none";
}

//添加
var but1 = document.getElementsByClassName("but1")[0];
but1.onclick = function(){
document.getElementsByClassName("box")[0].style.display = "block";
}

var input = document.getElementsByClassName("int");
var box3 = document.getElementsByClassName("box3")[0];
box3.onclick = function(){
var obj = {};
for(var i=0;i<input.length;i++){
obj[i]=input[i].value;
}
data.push(obj)
ayy(data)
}

//全部删除
var but = document.getElementsByClassName("but")[0];
but.onclick = function(){
var bodys = document.body;
var tables= document.getElementsByTagName("table")[0];
console.log(tables);
bodys.removeChild(tables);
alert("确定全部删除!");
}
// 查询
// input框
var phone = document.getElementsByClassName("phone")[0];
// console.log(phone);
var button = document.getElementsByClassName("button")[0];
// console.log(button);
button.onclick = function(){
// var a1=document.querySelectorAll(".a tr");
// var a1 = document.querySelectorAll("table tbody tr td:nth-child(5)");
// console.log(a1);
// var arr = [];
// for(var i= 0;i<a1.length;i++){
// var td = tr.getElementsByTagName("td");

// }
// for(var i = 0 ,arr =[]; i<a1.length;i++){
// if(a1[i].innerHTML.indexOf(phone.value) != -1){
// arr.push(a1[i])
// }
// }
// ayy(arr);
//
var arr = [];
for(var i =0;i<data.length;i++){
if(data[i]["联系电话"]==phone.value){
arr.push(data[i]);
}
}
ayy(arr);
}

不懂得地方看前一篇的思路分析

猜你喜欢

转载自www.cnblogs.com/zhangli123/p/11962133.html
今日推荐