原生js实现页面添加删除员工的功能,最终效果如下:
submit添加员工,delete删除,结果在页面动态显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<link rel="stylesheet" href="employer.css">
<body>
<script src="employer.js"></script>
<h1>添加新员工</h1>
<div id='add'>
<div class="row">
<div class='desc'>name:</div>
<div class="tag"><input type="text" id='name'></div>
</div>
<div class="row">
<div class='desc'>email:</div>
<div class="tag"> <input type="text" id="email"></div>
</div>
<div class="row">
<div class='desc'>salary:</div>
<div class="tag"><input type="text" id="salary"></div>
</div>
<div class="row">
<div id='submit'><input type="button" value="submit" onclick="add()"></div>
</div>
</div>
<table id="tab">
<tr>
<th>Name</th>
<th>Email</th>
<th>Salary</th>
<th></th>
</tr>
</table>
</body>
</html>
js这里可以用个循环让代码看起来简洁点儿
function add() {
var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var salary = document.getElementById('salary').value;
var obj = { 'name': name, 'email': email, 'salary': salary };
var tab = document.getElementById('tab');
var tr = document.createElement('tr');
for (const k in obj) {
if (obj.hasOwnProperty(k)) {
const element = obj[k];
var td = document.createElement('td');
var tn = document.createTextNode(element);
// 组装对象
td.appendChild(tn);
tr.appendChild(td);
tab.appendChild(tr);
}
}
var td = document.createElement('td');
var btn = document.createElement('button');
btn.setAttribute('onclick', 'deleteUser(this)');
btn.innerHTML = 'Delete';
// btn 样式
btn.style.color = 'blue';
btn.style.textDecoration = 'underline';
// 组装对象
tab.appendChild(tr);
tr.appendChild(td);
td.appendChild(btn);
}
function deleteUser(val) {
var tr = val.parentNode.parentNode;
var tab = tr.parentNode;
tab.removeChild(tr);
}
css样式没什么好说的,随便写了点…
#add {
width: 600px;
height: 200px;
margin: 0 auto;
}
h1 {
text-align: center;
}
.desc {
float: left;
width: 80px;
text-align: right;
padding-right: 20px;
}
.tag {
float: left;
width: 200px;
}
.row {
width: 300px;
height: 50px;
background: pink;
margin: 0 auto;
}
table {
margin: 0 auto;
border: 1px solid;
}
#submit {
float: right;
}