博客列表 >购物车的删除与编辑功能--2019-05-13

购物车的删除与编辑功能--2019-05-13

小人物的博客
小人物的博客原创
2019年05月14日 23:42:09967浏览

实例

<!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>

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议