Blogger Information
Blog 40
fans 0
comment 0
visits 29321
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
购物车的删除与编辑功能--2019-05-13
小人物的博客
Original
968 people have browsed it

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>完成购物车逐条删除功能</title>
    <style>
        /*表格与单元素添加边框*/
        table, th, td {
            border: 1px solid black;
        }
        /*设置表格样式, 折叠边框线并设置宽度*/
        table {
            border-collapse: collapse;
            width: 600px;
        }

        /*设置标题行背景*/
        table thead tr:first-of-type {
            background-color: lightblue;
        }

        /*选择每一行的第一列*/
        table tr td:first-of-type {
            text-align: center;
        }
    </style>
</head>
<body>
<table>
    <caption>购物车</caption>
    <thead>
    <tr>
        <th style="width: 30px;"><input type="checkbox" id="all"></th>
        <th>商品</th>
        <th>操作</th>
    </tr>
    </thead>


    <tbody >
    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>华为HUAWEI MateBook 14 全面屏轻薄性能笔记本电脑</td>
        <td><button class="edit">编辑</button> <button class="adel" >删除</button></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>联想(Lenovo)拯救者Y7000英特尔酷睿i5 15.6英寸游戏笔记本电脑</td>
        <td><button class="edit">编辑</button> <button class="adel">删除</button></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>小米 (MI)Ruby 2019款 15.6英寸金属轻薄笔记本电脑</td>
        <td><button class="edit">编辑</button> <button class="adel">删除</button></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>Apple Macbook Pro 13.3[带触控栏]深空灰 </td>
        <td><button class="edit">编辑</button> <button class="adel">删除</button></td>
    </tr>
    </tbody>
</table>

<button id="del-all" disabled>全部删除</button>

<script>
    // 获取元素
    // 全选复选框
    var all = document.getElementById('all');
    // 全部商品列表复选框
    var checkboxes = document.getElementsByName('user-select');
    // 全部删除按钮
    var delBtn = document.getElementById('del-all');

    // 给全选复选框, 通过input事件, 添加全选功能
    all.addEventListener('input', getAll, false);

    // 全选事件的触发函数
    function getAll() {
        // 测试
        console.log(all.checked);

        // 如果用户点击了全选
        if (all.checked === true) {
            // 获取所有被选中的复选框, 并将其设置为选中状态
            Object.keys(checkboxes).forEach(function (key) {
                checkboxes[key].checked = true;
            });
            // 全部删除按钮有效
            delBtn.disabled = false;

        } else {    // 用户取消了全选
            // 还原所有行的复选框
            Object.keys(checkboxes).forEach(function (key) {
                checkboxes[key].checked = false;
            });
            // 全部删除按钮无效
            delBtn.disabled = true;
        }
    }

    // 全部删除事件
    delBtn.addEventListener('click', delAll, false);

    // 全部删除事件触发函数
    function delAll() {
        if (confirm('是否全部删除?')) {
            // 获取tbody
            var tbody = document.getElementsByTagName('table')[0].tBodies[0];
            // 将tbody 内容置空却可
            tbody.innerHTML = '';
            // 全部删除按钮无效
            delBtn.disabled = true;
            // 全选按钮还原
            all.checked = false;

            // 可选操作, 给用户一个提示,让用户再添加一些商品到购物车,增加成交率
            var p = document.createElement('p');
            p.style.color = 'red';
            p.innerText = '购物车啥也木有了, 赶紧添加一些吧!';
            document.body.appendChild(p);
        }

    }



    // 作业: 逐个删除功能, 如何添加与测试?
    var adel = document.getElementsByClassName('adel');
    var edit = document.getElementsByClassName('edit');
    //删除数据
    for (var ii = 0; ii < adel.length; ii++) {
        adel[ii].addEventListener('click', function () {
            if (confirm("是否删除数据?")) {
                var tbody = document.getElementsByTagName('table')[0].tBodies[0];
                var adeltr =this.parentElement.parentElement;
                tbody.removeChild(adeltr);
            }
        }, false);
    }
    //编辑数据
    for (var jj = 0; jj < edit.length; jj++) {
        edit[jj].addEventListener('click', function () {
            var td = this.parentElement.previousElementSibling;

            var oldtext = td.innerHTML;
            var newtext = prompt('请输入新的内容:', oldtext);
            if (newtext !== null) {
                td.innerHTML = newtext;
            } else {
                return false;
            }
        },false)
    }

</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post