JavaScript基础学习 动态生成表格
根据我们拥有的数据来动态创建表格的行和列,以及实现删除行的操作
Document
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;
}
姓名
科目
成绩
操作
// 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: 0
}];
console.log(datas.length);
var tbody = document.querySelector('tbody');
// 第一步 需要根据我们的数据动态生成行
for (var i = 0; i < datas.length; i++) {
//创建行数
var tr = document.createElement('tr');
// 将创建的行插入tbody当中
tbody.appendChild(tr);
//第二步 根据我们的数据动态生成一行当中的列单元格 因为数组当中都是对象,用for in来遍历对象当中的属性
for (var k in datas[i]) {
// 创建单元格
var td = document.createElement('td');
// 将对象当中的属性值赋值给插入的单元格当中 obj[k]是属性值 k是属性名
td.innerHTML = datas[i][k];
//将单元格插入行当中
tr.appendChild(td);
}
//第三步 创建删除键
var td = document.createElement('td');
td.innerHTML = '删除';
tr.appendChild(td);
}
//第四步 执行删除的操作
// 先获取所有的删除键所在的元素
var as = document.querySelectorAll('a');
console.log(as);
for (var i = 0; i < datas.length; i++) {
as[i].onclick = function() {
// 要删除行的话,是需要tbody来进行删除行,as所代表的a的父节点是td,td的父节点再是tr
tbody.removeChild(this.parentNode.parentNode);
}
}