利用js动态创建页面

数据的增,删,改,查是任何一门语音都必须熟练掌握的。
在js中,创建元素的关键字是document.createElement(string)。string是需要创建的标签名。
要求:创建一个学生成绩的表,并可以完成删除

<!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>
<body>
    <div id="box">
        <!-- 显示结果 -->
    </div>
    <script>
    	//这是数据
        var headDatas = ['姓名', '科目', '成绩', '操作'];
        var datas = [{
                name: 'zs',
                subject: '语文',
                score: 90
            },
            {
                name: 'zs',
                subject: '数学',
                score: 110
            },
            {
                name: 'zs',
                subject: '英语',
                score: 90
            },
            {
                name: 'zs',
                subject: '物理',
                score: 100
            },
            {
                name: 'zs',
                subject: '化学',
                score: 90
            },
            {
                name: 'zs',
                subject: '生物',
                score: 70
            },
        ];
     
    </script>
</body>
</html>

<script>
        /* 第一步:获取容器box */
        var box = document.getElementById('box');
        /* 第二步:创建一个Table添加到box里面 */
        var table = document.createElement('table');  //创建的时候需要''号
        table.style.border = '1px solid black'; //添加样式
        table.style.width = '600px';
        box.appendChild(table); //添加的是子节点,不需要''号
        /* 第三步:创建thead,tbody添加到table里面 */
        /* var thead = document.createElement('thead');
        var tbody = document.createElement('tbody');
        table.appendChild(thead);
        table.appendChild(tbody); */
        var thead = table.createTHead('thead'); 
        var tbody = table.createTBody('tbody'); //这种写法也能达到效果,thead与tbody是table的固有属性.仅限于table
        /* 第四步: 存入thead的数据tr/th*array.length*/
        var tr = document.createElement('tr');
        tr.style.textAlign = 'center';
        tr.style.height = '40px';
        tr.style.backgroundColor = '#999';
        thead.appendChild(tr);
        for(var i = 0; i < headDatas.length; i++){ //遍历数组
            /* 利用循环创建th */
            var th = document.createElement('th');
            tr.appendChild(th);
            /* 数据的传入 */
            th.innerText = headDatas[i];
        }
        /* 第五步:存入tbody的数据tr/td 需要创建新的tr*/
        for(var i = 0; i < datas.length; i++){
            var tr = document.createElement('tr'); //需要创建的个数
            tbody.appendChild(tr);
            for(var key in datas[i]){
                var td = document.createElement('td');
                tr.style.textAlign = 'center';
                tr.appendChild(td);
                /* 数据的传入 */
                td.innerText = datas[i][key];  
            }
            /* 创建一个a标签用来删除 */
            var a = document.createElement('a');
            a.href = '#';
            a.innerText = '删除';
            tr.appendChild(a);
            /* 删除功能 点击事件 */
            a.onclick = function(){
                this.parentNode.parentNode.removeChild(this.parentNode); //parentNode当前节点的父亲节点,removeChild删除子节点
            }
        }
    </script>
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值