zoukankan      html  css  js  c++  java
  • Javascript----增删改查

    一、代码

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
        .edit-form {
            height: 40px;
            line-height: 40px;
        }
        </style>
    </head>
    
    <body>
        <!--
          假设现在从后台接受了一段关于访客的信息数据(添加新的访客信息从info里面按照顺序拿取),请实现问题一.gif的效果.
        -->
        <button class="add">添加一条新的访客信息</button>
        <button class="del">删除选中</button>
        <button class="up-sort">从小到大</button>
        <button class="down-sort">从大到小</button>
        <div class='edit-form'>
            <label>
                <span>姓名:</span>
                <input type="text" name="name" class='edit-name' id='edit-name'>
            </label>
            <label>
                <span>年龄:</span>
                <input type="text" name="name" class='edit-age' id='edit-age'>
            </label>
            <button class='sure-edit-btn' id='sure-edit-btn'>确定</button>
        </div>
        <table border="1" cellspacing="0" cellpadding="10">
            <thead>
                <tr>
                    <th>序列号</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>操作</th>
                    <th>选择</th>
                </tr>
            </thead>
            <tbody id='container'>
            </tbody>
        </table>
        <script type="text/javascript">
        var info = [
            { name: "胡杭", age: 16 },
            { name: "胜明", age: 22 },
            { name: "军毅", age: 21 },
            { name: "晓华", age: 13 },
            { name: "盛聪", age: 23 },
            { name: "侦剑", age: 32 },
            { name: "红翔", age: 25 },
            { name: "超维", age: 18 },
            { name: "士琪", age: 22 },
            { name: "艳华", age: 20 }
        ];
        var arr = info;
        var addBtn = document.querySelector(".add");
        var delBtn = document.querySelector(".del");
        var upSortBtn = document.querySelector(".up-sort");
        var downSortBtn = document.querySelector(".down-sort");
        var deleteSigleBtn = document.getElementsByClassName("del-single");
        var nameVal = document.getElementById("edit-name");
        var ageVal = document.getElementById("edit-age");
        var sureEditBtn = document.getElementById("sure-edit-btn");
        var container = document.getElementById("container");
        var index = 0;
        var nowArr = [];
        var delArray = [];
        var editUserName = '';
        //添加一条心的访客信息
        addBtn.addEventListener("click", function() {
            if (index < info.length) {
                while (container.firstChild) {
                    container.removeChild(container.firstChild);
                }
                var user = info[index];
                nowArr.push(user);
                console.log(nowArr.length);
                index++;
                for (var i = 0; i < nowArr.length; i++) {
                    fillList(nowArr[i], i);
                }
            } else {
                alert("已加载完信息!");
            }
        })
        //删除选中
        delBtn.addEventListener("click", function() {
            var choose = document.getElementsByClassName('choose');
            while (container.firstChild) {
                container.removeChild(container.firstChild);
            }
            for (var i = 0; i < delArray.length; i++) {
                delArr(delArray[i]);
            }
            for (var i = 0; i < nowArr.length; i++) {
                fillList(nowArr[i], i);
            }
        })
        //从大到小排序
        upSortBtn.addEventListener("click", function() {
            while (container.firstChild) {
                container.removeChild(container.firstChild);
            }
            sortArr(nowArr, 1)
            for (var i = 0; i < nowArr.length; i++) {
                /* var index = i;*/
                fillList(nowArr[i], i);
            }
        })
        // 从大到小排序
        downSortBtn.addEventListener("click", function() {
            while (container.firstChild) {
                container.removeChild(container.firstChild);
            }
            sortArr(nowArr, 2)
            for (var i = 0; i < nowArr.length; i++) {
                /* var index = i;*/
                fillList(nowArr[i], i);
            }
        })
        //确认修改
        sureEditBtn.addEventListener("click", function() {
            while (container.firstChild) {
                container.removeChild(container.firstChild);
            }
    
    
            var name1 = document.getElementById("edit-name").value;
            var age1 = document.getElementById("edit-age").value;
    
            for (var i = 0; i < nowArr.length; i++) {
                if (nowArr[i].name == editUserName) {
                    nowArr[i].name = name1;
                    nowArr[i].age = age1;
                    editUserName = name1;
                }
            }
    
            console.log(nowArr);
    
            for (var i = 0; i < nowArr.length; i++) {
                /* var index = i;*/
                fillList(nowArr[i], i);
            }
        })
    
    
    
    
    
    
        //填充列表
        function fillList(user, index1) {
            var user = user;
    
            var trList = document.createElement("tr");
            trList.setAttribute("class", "mes-list");
            var tdNum = document.createElement("td");
            tdNum.innerText = (index1 + 1);
            trList.appendChild(tdNum);
    
            var tdName = document.createElement("td");
            tdName.innerText = user.name;
            trList.appendChild(tdName);
            var tdAge = document.createElement("td");
            tdAge.innerText = user.age;
            trList.appendChild(tdAge);
    
            var tdOpt = document.createElement("td");
            var del = document.createElement("button");
            del.innerText = "删除";
            del.setAttribute("class", "del-single");
            del.setAttribute("data-name", user.name);
            del.setAttribute("data-age", user.age);
            tdOpt.appendChild(del);
            trList.appendChild(tdOpt);
    
            var edit = document.createElement("button");
            edit.innerText = "修改";
            edit.setAttribute("class", "edit-user-name");
            edit.setAttribute("data-name", user.name);
            edit.setAttribute("data-age", user.age);
            tdOpt.appendChild(edit);
            trList.appendChild(tdOpt);
    
            var tdOpt = document.createElement("td");
            var checkBox = document.createElement("input");
            checkBox.setAttribute("type", "checkbox");
            checkBox.setAttribute("class", "choose");
            checkBox.setAttribute("data-name", user.name);
            tdOpt.appendChild(checkBox);
            trList.appendChild(tdOpt);
    
            container.appendChild(trList);
        }
    
    
    
        //删除单个访客信息按钮
        container.addEventListener("click", function(ev) {
            var target = ev.target;
            if (target.getAttribute("class") == "del-single") {
                while (container.firstChild) {
                    container.removeChild(container.firstChild);
                }
                var userName = target.getAttribute("data-name");
                delArr(userName);
                for (var i = 0; i < nowArr.length; i++) {
                    fillList(nowArr[i], i);
                }
            }
        })
    
    
        //修改按钮事件
        container.addEventListener("click", function(event) {
            event.stopPropagation();
    
            var ev = event;
            var target = ev.target;
            console.log(target);
            if (target.getAttribute("class") == "edit-user-name") {
                var name = target.getAttribute("data-name");
                var age = target.getAttribute("data-age");
    
                /*console.log(name+":"+age);*/
                nameVal.value = name;
                ageVal.value = age;
                editUserName = name;
    
    
            }
        })
    
    
        //选择框事件
        container.addEventListener("click", function(ev) {
            var target = ev.target;
            if (target.getAttribute("type") == "checkbox") {
                var status = target.checked;
                var userName = target.getAttribute("data-name");
                if (status == true) {
                    /*delArr(userName);*/
                    delArray.push(userName);
                } else {
                    for (var i = 0; i < delArray.length; i++) {
                        if (delArray[i].name == userName) {
                            delArray.splice(i, 1);
                        }
                    }
                }
            }
        })
    
    
    
    
    
    
    
        // 数组排序
        function sortArr(arr, t) {
            var a = arr;
            if (t == 1) {
                for (var i = 0; i < a.length; i++) {
                    for (var j = i + 1; j < a.length; j++) {
                        /* console.log(a[i].age+","+a[j].age);*/
                        if (parseInt(a[i].age) > parseInt(a[j].age)) {
                            var t = a[j];
                            a[j] = a[i];
                            a[i] = t;
                        }
                    }
                }
            } else {
                for (var i = 0; i < a.length; i++) {
                    for (var j = i + 1; j < a.length; j++) {
                        /* console.log(a[i].age+","+a[j].age)*/
                        if (parseInt(a[i].age) < parseInt(a[j].age)) {
                            var t = a[j];
                            a[j] = a[i];
                            a[i] = t;
                        }
                    }
                }
            }
            return a;
        }
    
    
    
        //删除数组元素
        function delArr(name) {
            /*console.log(name+nowArr.length);*/
            for (var i = 0; i < nowArr.length; i++) {
                if (nowArr[i].name == name) {
                    nowArr.splice(i, 1);
                }
            }
            return nowArr;
        }
        </script>
    </body>
    
    </html>
    

      

    二、效果图

    3、总结:

    原生的javascript不熟悉,dom操作不顺手,继续打js基础。

  • 相关阅读:
    关于VS中更改栈和堆空间的大小
    BS模式的模型结构详解
    友情链接
    [ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题
    [个人思考] 裸泳的问题
    [label][Chrome-Extension] How to start Chrome Extension's development
    [label][OS] 制作 U 盘安装 Windows 7
    [label][Google-Developers] Your First Multi Screen Site
    Min Stack
    Implement Stack using Queues
  • 原文地址:https://www.cnblogs.com/SunlikeLWL/p/7247782.html
Copyright © 2011-2022 走看看