<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table {
width: 500px;
margin: 100px auto;
border-collapse: collapse;
text-align: center;
}
td,
th {
border: 1px solid #333;
}
thead tr {
height: 40px;
background-color: #ccc;
}
</style>
</head>
<body>
<table cellspacing="0">
<thead>
<tr>
<th>姓名</th>
<th>科目</th>
<th>成绩</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
// 1.先去准备好学生的数据,这里应该是从数据库导入的
var datas = [{
name: '小明',
subject: 'JavaScript',
score: 100
}, {
name: '小华',
subject: 'JavaScript',
score: 98
}, {
name: '小红',
subject: 'JavaScript',
score: 99
}, {
name: '小玉',
subject: 'JavaScript',
score: 88
}, {
name: '小飞',
subject: 'JavaScript',
score: 90
}];
// 1.动态设置行和列,因为是放在tbody里面的,所以先获取元素tbody
var tb = document.querySelector('tbody');
//动态设置行,设置几行?应该是由数组元素来决定的,循环数组元素,每循环一次即自动生成行
for (var i = 0; i < datas.length; i++) {
var tr = document.createElement('tr');//先生成,在放置
tb.appendChild(tr) //这句话意思是把tr行放置在tbody里面
//行已经设置完成,然后我们设置列,设置几列?这应当由元素对象里的属性决定,循环对象,设置列的数量
// 这里就像for的双重循环,外循环主行数,内循环主列数
for (var k in datas[i]) {//遍历每个对象,给每个属性设置列数
var td = document.createElement('td');
//设置完之后需要给列填充内容
td.innerHTML = datas[i][k];
tr.appendChild(td) //先设置在放置,把列放在行的后面 [i]代表对象属性名
}
//设置删除行,因为是在一行内,所以在循环内
var td = document.createElement('td')
td.innerHTML = '<a href="#">删除</a>' //这里注意需要加引号
tr.appendChild(td);
} //这里行和列已经设置好了,所以循环要结束了
//设置点击每个a删除整行
var as = document.querySelectorAll('a');//获取元素,这里注意要选择所有
for (var i = 0; i < as.length; i++) {
as[i].onclick = function () {
tb.removeChild(this.parentNode.parentNode)
}
}
</script>
</body>
</html>
10-27
339
09-26
1241
11-24
1733
05-27