JavaScript练习题——完成动态生成表格案例

使用数组模拟学生数据
动态创建行
为单元格填充数据
提供删除链接,可删除所在的行

 <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>科目</th>
                <th>成绩</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
    <script>
    //模拟数据,数组集合
        let listData = [{
            name: "张三",
            subject: "JavaScript",
            score: 100
        }, {
            name: "李四",
            subject: "JavaScript",
            score: 90
        }, {
            name: "王五",
            subject: "JavaScript",
            score: 90
        }, ]
        //获取到tbody控件,便于后边添加移除操作
        let tbody = document.querySelector("tbody");
        //遍历循环,添加行
        for (let i = 0; i < listData.length; i++) {
        //创建行元素
            let tr = document.createElement("tr");
            //添加行节点
            tbody.appendChild(tr);
            //遍历每组对象,添加每行单元格的添加
            for (let value in listData[i]) {
                let td = document.createElement("td");
                td.innerHTML = listData[i][value];
                // console.log(listData[i][value]);
                tr.appendChild(td);
            }
            //创建单元格,添加删除标签
            let del = document.createElement("td")
            del.innerHTML = '<a href="javascript:;">删除</a>'
            tr.appendChild(del)
        }

//获取所有的a标签,添加点击事件进行删除
        let as = document.querySelectorAll("a");
        // for (let i = 0; i < as.length; i++) {
        //     console.log(as[i]);
        // }
        as.forEach(x => {
            x.addEventListener("click", function() {
                tbody.removeChild(this.parentNode.parentNode);
            });
        })
    </script>
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用 JavaScript动态生成表格,步骤如下: 1. 创建一个空的表格元素。 ```html <table id="myTable"></table> ``` 2. 获取要生成数据。 ```javascript const data = [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ]; ``` 3. 创建表头。 ```javascript const table = document.getElementById('myTable'); const thead = table.createTHead(); const row = thead.insertRow(); const headers = ['姓名', '年龄', '性别']; for (let header of headers) { const th = document.createElement('th'); const text = document.createTextNode(header); th.appendChild(text); row.appendChild(th); } ``` 4. 创建表格。 ```javascript const tbody = table.createTBody(); for (let person of data) { const row = tbody.insertRow(); const values = Object.values(person); for (let value of values) { const cell = row.insertCell(); const text = document.createTextNode(value); cell.appendChild(text); } } ``` 完整的代码如下: ```html <table id="myTable"></table> <script> const data = [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ]; const table = document.getElementById('myTable'); const thead = table.createTHead(); const row = thead.insertRow(); const headers = ['姓名', '年龄', '性别']; for (let header of headers) { const th = document.createElement('th'); const text = document.createTextNode(header); th.appendChild(text); row.appendChild(th); } const tbody = table.createTBody(); for (let person of data) { const row = tbody.insertRow(); const values = Object.values(person); for (let value of values) { const cell = row.insertCell(); const text = document.createTextNode(value); cell.appendChild(text); } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值