利用js动态生成页面

搬运来源: https://blog.csdn.net/F_eve/article/details/111062039

 

在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>

 

posted @ 2022-06-23 09:07  小小小光子  阅读(989)  评论(0编辑  收藏  举报