Javascript----增删改查
一、代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.edit-form {
height: 40px;
line-height: 40px;
}
</style>
</head>
<body>
<!--
假设现在从后台接受了一段关于访客的信息数据(添加新的访客信息从info里面按照顺序拿取),请实现问题一.gif的效果.
-->
<button class="add">添加一条新的访客信息</button>
<button class="del">删除选中</button>
<button class="up-sort">从小到大</button>
<button class="down-sort">从大到小</button>
<div class='edit-form'>
<label>
<span>姓名:</span>
<input type="text" name="name" class='edit-name' id='edit-name'>
</label>
<label>
<span>年龄:</span>
<input type="text" name="name" class='edit-age' id='edit-age'>
</label>
<button class='sure-edit-btn' id='sure-edit-btn'>确定</button>
</div>
<table border="1" cellspacing="0" cellpadding="10">
<thead>
<tr>
<th>序列号</th>
<th>姓名</th>
<th>年龄</th>
<th>操作</th>
<th>选择</th>
</tr>
</thead>
<tbody id='container'>
</tbody>
</table>
<script type="text/javascript">
var info = [
{ name: "胡杭", age: 16 },
{ name: "胜明", age: 22 },
{ name: "军毅", age: 21 },
{ name: "晓华", age: 13 },
{ name: "盛聪", age: 23 },
{ name: "侦剑", age: 32 },
{ name: "红翔", age: 25 },
{ name: "超维", age: 18 },
{ name: "士琪", age: 22 },
{ name: "艳华", age: 20 }
];
var arr = info;
var addBtn = document.querySelector(".add");
var delBtn = document.querySelector(".del");
var upSortBtn = document.querySelector(".up-sort");
var downSortBtn = document.querySelector(".down-sort");
var deleteSigleBtn = document.getElementsByClassName("del-single");
var nameVal = document.getElementById("edit-name");
var ageVal = document.getElementById("edit-age");
var sureEditBtn = document.getElementById("sure-edit-btn");
var container = document.getElementById("container");
var index = 0;
var nowArr = [];
var delArray = [];
var editUserName = '';
//添加一条心的访客信息
addBtn.addEventListener("click", function() {
if (index < info.length) {
while (container.firstChild) {
container.removeChild(container.firstChild);
}
var user = info[index];
nowArr.push(user);
console.log(nowArr.length);
index++;
for (var i = 0; i < nowArr.length; i++) {
fillList(nowArr[i], i);
}
} else {
alert("已加载完信息!");
}
})
//删除选中
delBtn.addEventListener("click", function() {
var choose = document.getElementsByClassName('choose');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
for (var i = 0; i < delArray.length; i++) {
delArr(delArray[i]);
}
for (var i = 0; i < nowArr.length; i++) {
fillList(nowArr[i], i);
}
})
//从大到小排序
upSortBtn.addEventListener("click", function() {
while (container.firstChild) {
container.removeChild(container.firstChild);
}
sortArr(nowArr, 1)
for (var i = 0; i < nowArr.length; i++) {
/* var index = i;*/
fillList(nowArr[i], i);
}
})
// 从大到小排序
downSortBtn.addEventListener("click", function() {
while (container.firstChild) {
container.removeChild(container.firstChild);
}
sortArr(nowArr, 2)
for (var i = 0; i < nowArr.length; i++) {
/* var index = i;*/
fillList(nowArr[i], i);
}
})
//确认修改
sureEditBtn.addEventListener("click", function() {
while (container.firstChild) {
container.removeChild(container.firstChild);
}
var name1 = document.getElementById("edit-name").value;
var age1 = document.getElementById("edit-age").value;
for (var i = 0; i < nowArr.length; i++) {
if (nowArr[i].name == editUserName) {
nowArr[i].name = name1;
nowArr[i].age = age1;
editUserName = name1;
}
}
console.log(nowArr);
for (var i = 0; i < nowArr.length; i++) {
/* var index = i;*/
fillList(nowArr[i], i);
}
})
//填充列表
function fillList(user, index1) {
var user = user;
var trList = document.createElement("tr");
trList.setAttribute("class", "mes-list");
var tdNum = document.createElement("td");
tdNum.innerText = (index1 + 1);
trList.appendChild(tdNum);
var tdName = document.createElement("td");
tdName.innerText = user.name;
trList.appendChild(tdName);
var tdAge = document.createElement("td");
tdAge.innerText = user.age;
trList.appendChild(tdAge);
var tdOpt = document.createElement("td");
var del = document.createElement("button");
del.innerText = "删除";
del.setAttribute("class", "del-single");
del.setAttribute("data-name", user.name);
del.setAttribute("data-age", user.age);
tdOpt.appendChild(del);
trList.appendChild(tdOpt);
var edit = document.createElement("button");
edit.innerText = "修改";
edit.setAttribute("class", "edit-user-name");
edit.setAttribute("data-name", user.name);
edit.setAttribute("data-age", user.age);
tdOpt.appendChild(edit);
trList.appendChild(tdOpt);
var tdOpt = document.createElement("td");
var checkBox = document.createElement("input");
checkBox.setAttribute("type", "checkbox");
checkBox.setAttribute("class", "choose");
checkBox.setAttribute("data-name", user.name);
tdOpt.appendChild(checkBox);
trList.appendChild(tdOpt);
container.appendChild(trList);
}
//删除单个访客信息按钮
container.addEventListener("click", function(ev) {
var target = ev.target;
if (target.getAttribute("class") == "del-single") {
while (container.firstChild) {
container.removeChild(container.firstChild);
}
var userName = target.getAttribute("data-name");
delArr(userName);
for (var i = 0; i < nowArr.length; i++) {
fillList(nowArr[i], i);
}
}
})
//修改按钮事件
container.addEventListener("click", function(event) {
event.stopPropagation();
var ev = event;
var target = ev.target;
console.log(target);
if (target.getAttribute("class") == "edit-user-name") {
var name = target.getAttribute("data-name");
var age = target.getAttribute("data-age");
/*console.log(name+":"+age);*/
nameVal.value = name;
ageVal.value = age;
editUserName = name;
}
})
//选择框事件
container.addEventListener("click", function(ev) {
var target = ev.target;
if (target.getAttribute("type") == "checkbox") {
var status = target.checked;
var userName = target.getAttribute("data-name");
if (status == true) {
/*delArr(userName);*/
delArray.push(userName);
} else {
for (var i = 0; i < delArray.length; i++) {
if (delArray[i].name == userName) {
delArray.splice(i, 1);
}
}
}
}
})
// 数组排序
function sortArr(arr, t) {
var a = arr;
if (t == 1) {
for (var i = 0; i < a.length; i++) {
for (var j = i + 1; j < a.length; j++) {
/* console.log(a[i].age+","+a[j].age);*/
if (parseInt(a[i].age) > parseInt(a[j].age)) {
var t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
} else {
for (var i = 0; i < a.length; i++) {
for (var j = i + 1; j < a.length; j++) {
/* console.log(a[i].age+","+a[j].age)*/
if (parseInt(a[i].age) < parseInt(a[j].age)) {
var t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
}
return a;
}
//删除数组元素
function delArr(name) {
/*console.log(name+nowArr.length);*/
for (var i = 0; i < nowArr.length; i++) {
if (nowArr[i].name == name) {
nowArr.splice(i, 1);
}
}
return nowArr;
}
</script>
</body>
</html>
二、效果图

3、总结:
原生的javascript不熟悉,dom操作不顺手,继续打js基础。

浙公网安备 33010602011771号