用JS怎样实现简单的动态表格效果?

Admin 2021-09-03 群英技术资讯 515 次浏览

    这篇文章主要给大家分享用JS实现动态表格效果,也就是点击增加或者删除就可以自动增加或删除表格的行,小编觉得还是比较实用的,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。

    代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态表格</title>
    <style>
        .bigDiv{
            width: 600px;
            margin: 50px auto;
        }
        table{
            border: solid black 2px;
            width: 500px;
            /*边框会合并为一个单一的边框*/
            border-collapse: collapse;
        }
        th{
            background-color: darkgray;
            /*表头字体加粗*/
            font-weight: bold;
            /*字体颜色  #ffffff:白色*/
            color: #ffffff;
        }
        th,td{
            border: 1px solid black ;
            /*指定的宽度和高度的行为。指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度*/
            box-sizing: content-box;
            text-align: center;
            /*指定宽高*/
            width: 50px;
            height: 30px;
            font-size: 14px;
        }
        .but{
            width: 150px;
            margin: 5px 400px;
            /*让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容*/
            display: flex;
            /*在弹性盒对象的 <div> 元素中的各项周围留有空白*/
            justify-content: flex-end;
        }
    </style>
</head>
<body>
<div class="bigDiv">
<table align="center">
    <thead>
    <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
        <th>联系电话</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>逍遥</td>
        <td>18</td>
        <td>男</td>
        <td>12354546</td>
    </tr>
    <tr>
        <td>2</td>
        <td>小白</td>
        <td>19</td>
        <td>女</td>
        <td>252323523</td>
    </tr>
    </tbody>
</table>
<div class="but">
    <button type="button" onclick="addRow()">添加一行</button>
    <button type="button" onclick="saveData()">保存数据</button>
</div>
</div>
<script>
    var id;
    var name;
    var age;
    var sex;
    var phone;
    var tdArr=new Array();
    function addRow() {
        let tbodyObj = document.getElementsByTagName("tbody")[0];
        let trObj = document.createElement("tr");
        tbodyObj.appendChild(trObj);
        //创建5个td
        for (let i = 0; i < 5; i++) {
            let tdObj = document.createElement("td");
            trObj.appendChild(tdObj);
            //创建input输入框对象
            let inputObj = document.createElement("input");
            //设置input对象的id属性
            inputObj.setAttribute("id",i);
            //为每一个输入框添加一个失去焦点事件
            inputObj.addEventListener("blur",function () {
                switch (this.id) {
                    case "0":
                        id=this.value;
                        break;
                    case "1":
                        name=this.value;
                        break;
                    case "2":
                        age=this.value;
                        break;
                    case "3":
                        sex=this.value;
                        break;
                    case "4":
                        phone=this.value;
                        break;
                }
            });

            //隐藏未点击输入时的input边框
            inputObj.style.border="0";
            //隐藏点击输入时的边框
            inputObj.style.outline="none";
            //设置输入框宽度
            inputObj.style.width="80px";
            //设置输入框高度
            inputObj.style.height="25px";
            //设置输入框的外边距为0
            inputObj.style.margin="0";
            //将td添加
            tdObj.appendChild(inputObj);
            //将tdObj添加到tdArr中
            tdArr.push(tdObj);
        }
    }
    function saveData() {
        tdArr[0].innerHTML=id;
        tdArr[1].innerHTML=name;
        tdArr[2].innerHTML=age;
        tdArr[3].innerHTML=sex;
        tdArr[4].innerHTML=phone;
        tdArr.length=0;
    }
</script>
</body>
</html>

    关于js实现动态表格就介绍到这,上述代码仅供参考,感兴趣的朋友可以借鉴学习,希望能对大家有帮助,想要了解更多大家可以关注群英网络其它相关文章。

文本转载自脚本之家

群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服