动态获取数据创建表格

通过获取表单里的数据,动态创建表格,将数据添加到表格中,对数据进行增删改查

样式

<style>
        * {
    
    
            padding: 0;
            margin: 0;
        }

        .box {
    
    
            width: 500px;
            margin: 50px auto;
        }

        .box p {
    
    
            width: 300px;
            height: 40px;
        }

        .box p input {
    
    
            width: 200px;
            height: 30px;
            text-indent: 1em;
            outline: none;
        }

        #btn,
        #edit {
    
    
            width: 100px;
            height: 30px;
            border: none;
            border-radius: 4px;
            outline: none;
        }

        .box p #btn {
    
    
            margin-left: 62px;
        }

        #edit {
    
    
            display: none;
            margin-left: 62px;
        }

        #con {
    
    
            width: 500px;
            color: white;
        }
    </style>

整体布局

 <div class="box">
        <p><span>用户名</span><input type="text" placeholder="请输入用户名" value="" id="username"></p>
        <p><span>&emsp13;&emsp13;&emsp13;</span><input type="password" placeholder="请输入密码" value="" id='pwd'></p>
        <p><button id="btn">提交</button>
            <button id="edit">完成</button></p>
        <p><span> 操作</span></p>
        <div id="con">
        </div>
    </div>

呈现效果
在这里插入图片描述

js动态创建

 <script>
       //获取inpu框元素,用于输入用户名
        var username = document.getElementById("username");
        //获取div元素,用于存放table
        var con = document.getElementById("con");
        //获取input框元素,用于输入密码
        var pwd = document.getElementById("pwd");
        //获取提交按钮元素,用于提交数据
        var btn = document.getElementById("btn");
        //获取span元素
        var spans = document.getElementsByTagName("span");
        //获取编辑按钮元素,用于编辑数据
        var edit = document.getElementById("edit");
        //定义一个空数组,将sapn中的内容存入作为表头的内容
        var arr1 = [];
        arr1.push(spans[0].innerText);//用户名
        arr1.push(spans[1].innerText);//密码
        arr1.push(spans[2].innerText);//操作
        
        spans[2].style.display = 'none';

        //创建表格
        var table = document.createElement("table");
        //设置表格的样式
        table.style.borderSpacing = '0px';
        table.style.border = '0px';
        table.style.backgroundColor = 'darksalmon'
        //将div隐藏,在没有数据时隐藏
        con.style.display = 'none';
        //将创建好的table放入div盒子中
        con.appendChild(table);
        //创建表头
        var thead = document.createElement("thead");
        //将表头放入table中
        table.appendChild(thead);
        //通过循环数组长度创建th的个数
        for (var i = 0; i < arr1.length; i++) {
    
    
        //创建td
            var ths = document.createElement("th");
            //将td存入thead中
            thead.appendChild(ths);
            //将数组里对应的数据赋值给td的内容
            ths.innerText = arr1[i];
            //设置td的样式
            ths.style.height = '30px';
            ths.style.width = '150px';
        }
        //提交按钮的点击事件
        btn.onclick = function () {
    
    
        //点击提交时才可将表格显示出来
            con.style.display = 'block';

            //获取用户名
            var u_name = username.value;
            //获取密码
            var u_pwd = pwd.value;
            //判断,只有当用户名和密码都不为空的时候才能向表格里添加数据
            if (u_name != '' && u_pwd != '') {
    
    
                //每点击一次,创建一哥tr
                var tr = document.createElement("tr");
                //将其加入到table中
                table.appendChild(tr);
                //为tr添加样式
                tr.style.backgroundColor = 'indianred'
                //两个单元格,将其加入到tr中
                tr.style.textAlign = 'center';
                tr.style.lineHeight = '40px';
                //创建td用于存放用户名
                var td1 = document.createElement("td");
                //将td加入tr中
                tr.appendChild(td1);
                //将获取的用户名存入td中
                td1.innerText = u_name;
                //创建td用于存放用户密码
                var td2 = document.createElement("td");
                //将td加入tr中
                tr.appendChild(td2);
                //将获取的密码存入td中
                td2.innerText = u_pwd;
                //添加删除,创建一个a标签
                var a1 = document.createElement("a");
                //将a标签放入tr中
                tr.appendChild(a1);
                //为a标签添加样式
                a1.href = "#";
                a1.innerText = '删除';
                a1.style.marginRight = '10px';
                a1.style.textDecoration = 'none';
                //添加编辑,创建一个a标签
                var a2 = document.createElement("a");
                //将a标签放入tr中
                tr.appendChild(a2);
                //为a标签添加样式
                a2.href = "#";
                a2.innerText = '编辑';
                a2.style.textDecoration = 'none';
            }
            //添加完成后将两个输入框的内容清空,便于下一次的添加数据
            username.value = '';
            pwd.value = '';

            //删除数据
            //为a标签注册点击事件             0
            a1.addEventListener('click', fna);
            //触发事件后,删除tr元素
            function fna() {
    
    
             var trs = document.getElementsByTagName("tr");
                tr.remove();
                //通过判断trs的长度是否为0,若为0说明所有的tr都被删除了,就将表格影藏
                 if (trs.length == 0) {
    
    
                    con.style.display = 'none';
                }
            }

            //编辑数据
            //为a标签注册点击事件
            a2.addEventListener('click', fnb);
            function fnb() {
    
    
            //编辑时将提交按钮影藏,编辑按钮显示出来
                edit.style.display = 'block';
                btn.style.display = 'none';
                //从表中获取数据将数据放入input框中显示并修改
                username.value = td1.innerText;
                pwd.value = td2.innerText;
                //为编辑添加点击事件
                edit.onclick = function () {
    
    
                   //将编辑后的数据再次放入表格中,完成修改
                    tr.children[0].innerText = username.value;
                    tr.children[1].innerText = pwd.value;
                    //完成后将编辑按钮影藏,提交按钮显示
                    edit.style.display = 'none';
                    btn.style.display = 'block';
                    //将input框的内容清空,便于下一次添加数据
                    username.value = '';
                    pwd.value = '';
                }
            }
        }
    </script>

添加数据并提交
在这里插入图片描述
提交后,清空输入框,将数据放入表格中
在这里插入图片描述
删除数据
删除前
在这里插入图片描述
删除后
在这里插入图片描述
编辑
点击编辑时状态,此时edit按钮才显示出来
在这里插入图片描述
编辑后:编辑李四的信息
在这里插入图片描述
修改后:提交按钮显示,编辑按钮隐藏,清空输入框
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44902858/article/details/111258467