使用HTML、css、JavaScript写增删改查

使用HTML、css、JavaScript写增删改查

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格</title>
    <style>
        div {
            width: 800px;
            height: 500px;
            text-align: center;
            position: absolute;
            border: 3px solid black;
        }
    </style>
</head>

<body>
    <!--  position="absolute" text-align="center" border="3px solid black" width="800px" height="500px" -->
    <div>
        <table border="1px solid" align="center" cellspacing=0 cellpadding=0>
            <tr>
                <td>用户名</td>
                <td><input type="text" id="yonghu" name="yonghu"></td>
            </tr>
            <tr>
                <td>昵称</td>
                <td><input type="text" id="nicheng" name="nicheng"></td>
            </tr>
            <tr>
                <td>重置</td>
                <td>
                    <!-- bchgx:保存或更新 -->
                    <input type="button" value="保存" id="bchgx">
                </td>
            </tr>
        </table>
        <hr>
        <!-- searchKey:搜索关键字 -->
        用户名: <input type="text" id="searchKey">
        <input type="button" value="搜索" id="search">
        <hr>
        <input id="dxk" type="button" value="全选" name="dxk">
        <input id="qxdxk" type="button" value="取消全选" name="qxdxk">
        <input id="fx" type="button" value="反选" name="fx">
        <input id="plsc" type="button" value="批量删除" name="plsc">
        <hr>
        <table border="1px solid" align="center" cellspacing=0 cellpadding=0 width="80%">
            <tbody>
                <tr>
                    <!-- zdxk:总多选框 -->
                    <td>选择</td>
                    <td>序号</td>
                    <td>用户名</td>
                    <td>昵称</td>
                    <td>操作</td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="dxk"></td>
                    <td>1</td>
                    <td>aaa</td>
                    <td>aaa</td>
                    <td>
                        <input type="submit" value="删除" onclick="del(this)">
                        <input type="submit" value="更新" class="update">
                    </td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="dxk"></td>
                    <td>2</td>
                    <td>bbb</td>
                    <td>bbb</td>
                    <td>
                        <input type="submit" value="删除" onclick="del(this)">
                        <input type="submit" value="更新" class="update">
                    </td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="dxk"></td>
                    <td>3</td>
                    <td>ccc</td>
                    <td>ccc</td>
                    <td>
                        <!-- this指的是整个input元素 -->
                        <input type="button" value="删除" onclick="del(this)">
                        <input type="button" value="更新" class="update">
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
<script>
    // 添加
    window.onload = function () {
        document.getElementById('bchgx').onclick = function () {
            // 将要输入的内容存储到yonghu和nicheng两个变量名中
            var yonghu1 = document.getElementsByName('yonghu')[0];
            // var yonghu1 = document.getElementById('yonghu');
            var yonghu = yonghu1.value;
            var nicheng1 = document.getElementsByName('nicheng')[0];
            var nicheng = nicheng1.value;
            // 选择往哪个table中tbody中添加tr
            var table = document.getElementsByTagName('table')[1]
            var tbody = document.getElementsByTagName('tbody')[1];
            // 创建一个tr
            var tr = document.createElement('tr');//相当于<tr></tr>
            // 在创建一个td
            var td1 = document.createElement('td');
            // 在td中添加<input type="checkbox" name="dxk">
            var input = document.createElement('input');
            input.setAttribute("type", "checkbox");
            input.setAttribute("name", "dxk");
            // 将input追加到td中
            td1.appendChild(input);
            // 将td1追加到tr中
            tr.appendChild(td1);
            // 创建td2
            var td2 = document.createElement('td');
            // 定义table中的所有tr:alltrsOftable
            var alltrsOftable = table.getElementsByTagName('tr');
            // 获取表格中最后一个序号
            // alltrsOftable[alltrsOftable.length-1].children[1].innerHTML:表示的是所有tr中,表格的行数-1.索引值为1的那一列子节点开始中的内容
            var lastXH = parseInt(alltrsOftable[alltrsOftable.length - 1].children[1].innerHTML);//转换成数字类型,或者使用Number
            // td2的值
            td2.innerHTML = lastXH + 1;
            // 将td2添加到tr中
            tr.appendChild(td2);
            // 创建第三列
            var td3 = document.createElement('td');
            // 将之前存储的yonghu添加到td3
            td3.innerHTML = yonghu;
            // 将td3添加到tr中
            tr.appendChild(td3);
            // 创建第四列
            var td4 = document.createElement('td');
            // 将之前存储的nicheng添加到td4
            td4.innerHTML = nicheng;
            // 将td4添加到tr中
            tr.appendChild(td4);
            // 创建第五列
            var td5 = document.createElement('td');
            td5.innerHTML = "<input type=\"button\" value=\"删除\" οnclick=\"del(this)\">&nbsp<input type=\"button\" value=\"更新\" class=\"update\">";
            tr.appendChild(td5);
            // 将tr添加到table中
            tbody.appendChild(tr);
            // console.log(yonghu);
            // console.log(nicheng);

        }
    }

    // 搜索
    document.getElementById('search').onclick = function () {
        var searchKey = document.getElementById('searchKey').value;
        var trs = document.getElementsByTagName('table')[1].getElementsByTagName('tr');
        // trs.length-1表示的是trs中tr除去第一行,防止越界将第一行去除掉
        for (var i = trs.length - 1; i > 0; i--) {
            // console.log(111);
            // console.log( trs[i].children[2].innerHTML + " " + searchKey + " "+ (trs[i].children[2].innerHTML.indexOf(searchKey) == -1));
            if (trs[i].children[2].innerHTML.indexOf(searchKey) == -1) {

                trs[i].parentNode.removeChild(trs[i]);

            }

        }
    }

    // 全选
    // dxk:多选框
    document.getElementById('dxk').onclick = function () {
        // console.log(111);
        var xz = document.getElementsByName('dxk');
        // console.log(xz);
        for (var i = 0; i < xz.length; i++) {
            xz[i].checked = true;
        }
    };

    // 取消全选
    // qxdxk:取消多选框
    document.getElementById('qxdxk').onclick = function () {
        var qxxz = document.getElementsByName('dxk');
        for (var i = 0; i < qxxz.length; i++) {
            qxxz[i].checked = false;
        }
    };

    // 反选
    // fx:反选
    document.getElementById('fx').onclick = function () {
        var fx = document.getElementsByName('dxk');
        for (var i = 0; i < fx.length; i++) {
            fx[i].checked = !fx[i].checked;
        }
    }

    // 批量删除
    // plsc:批量删除
    document.getElementById('plsc').onclick = function () {
        // 找到第二个table里的input
        var inputs = document.getElementsByTagName('table')[1].getElementsByTagName('input');
        // 进行遍历
        for (var i = 0; i < inputs.length; i++) {
            // var input = inputs[i];
            if (inputs[i].getAttribute('type') == "checkbox" && inputs[i].checked) {
                // console.log(111);
                document.getElementsByTagName('table')[1].getElementsByTagName('tbody')[0].removeChild(inputs[i].parentNode.parentNode);
                i = -1;//相当于var i = trs.length-1; i > 0 ; i--
            }

        }
    };

    // 删除
    // 不能使用this,this是关键字,不能用来声明参数,经常使用obj来声明参数
    // 直接通过行内设置onclick,传入this参数,在js中直接调用onclick调用的函数
    function del(obj) {
        var table = obj.parentNode.parentNode.parentNode;
        // var tr = obj.parentNode.parentNode;
        table.removeChild(obj.parentNode.parentNode);
    }

    // 更新
    // 选中的是一组数组,要想被选中,就要进行遍历
    var updatestr = document.getElementsByClassName('update');
    for (var i = 0; i < updatestr.length; i++) {
        var update1 = updatestr[i];
        update1.onclick = enterupdate;
    }
    // 进入更新页面
    // 定义一个全局变量
    var yuanxuhao = -1;
    function enterupdate() {
        console.log(this);
        // yuanxuhao是个全局变量
        yuanxuhao = this.parentNode.parentNode.children[1].innerHTML;
        var yonghu = this.parentNode.parentNode.children[2].innerHTML;
        var nicheng = this.parentNode.parentNode.children[3].innerHTML;
        document.getElementsByName("yonghu")[0].value = yonghu;
        document.getElementsByName("nicheng")[0].value = nicheng;
        document.getElementById("bchgx").value = "更新";
        document.getElementById('bchgx').onclick = update;
    }
    function update() {
        var yonghu1 = document.getElementsByName('yonghu')[0];
        var yonghu = yonghu1.value;
        var nicheng1 = document.getElementsByName('nicheng')[0];
        var nicheng = nicheng1.value;

        // 找到更新的父节点的父节点,即所有的tr
        var trs = document.getElementsByTagName('table')[1].getElementsByTagName('tbody')[0].getElementsByTagName('tr');

        for (var i = 0; i < trs.length; i++) {
            // 找到序号那一列
            var count = trs[i].children[1].innerHTML;
            if (count == yuanxuhao) {
                trs[i].children[2].innerHTML = yonghu;
                trs[i].children[3].innerHTML = nicheng;
                break;//用于结束循环
            }

        }
    }
    
    document.getElementsByName('yonghu')[0].value = "";
    document.getElementsByName('nicheng')[0].value = "";
    document.getElementById('bchgx').value = "保存";
    document.getElementById('bchgx').onclick = bchgx;



</script>
<!-- // 删除
    // document.getElementById('del').onclick = function () {
    //     // console.log(this);
    //     var table = obj.parentNode.parentNode.parentNode;
    //     var tr = obj.parentNode.parentNode;
    //     this.parentNode.parentNode.remove(tr);
    //     // this.parents().remove();
    // } -->

</html>

内容不全

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值