还是运用了节点的关系,所谓的JS生成表格是指不再像最开始一样直接把数据放到html里面,而是直接调用JS函数来调用数据生成表格,可以看到HTML里面只定义了表格的表头和一些基本结构,代码脉络很清晰,以后再翻回来看的时候应该能看懂。
<!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>
<link rel="stylesheet" href="style.css">
</head>
<body>
<table cellspacing="0">
<thead>
<tr>
<td>姓名</td>
<td>科目</td>
<td>成绩</td>
<td>操作</td>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>
<script src="style.js"></script>
</body>
</html>
var data=[
{
name:'张三',
subject:'数学',
score:100,
},
{
name:'李四',
subject:'语文',
score:90,
},
{
name:'王五',
subject:'英语',
score:20,
}];
var tbdy = document.querySelector("tbody");
for(var i=0;i<data.length;i++)
{
var tr = document.createElement('tr');
tbdy.appendChild(tr);
for(k in data[i]){//k得到的是属性名
var td = document.createElement('td');
td.innerHTML = data[i][k];
tr.appendChild(td);
}
var td = document.createElement('td');
td.innerHTML = '<a href="javascript:;">删除</a>';
tr.appendChild(td);
}
var as = document.querySelectorAll('a');
for(var i=0;i<as.length;i++)
{
as[i].οnclick=function(){
tbdy.removeChild(this.parentNode.parentNode);
}
}
*{
margin:0;
padding:0;
}
table{
width:50%;
margin:20% auto;
border-collapse: collapse;
text-align: center;
}
td,th{
border: 1px solid #333;
}
thead tr {
height: 40px;
background-color: #ccc;
}
顺便呢再讲个小故事,我原本以为CSDN上的用户都应该知道前端三件套的,之前发布过一个3D相册的代码,有人跟我说没办法运行,我采用外链接的方式,这位朋友直接粘贴到一个文件夹里面,并且质问我为什么不可以,我也不知道该怎么回答……