Blogger Information
Blog 18
fans 0
comment 0
visits 9971
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
实例表单事件05-13
偏执的博客
Original
520 people have browsed it
  1. 完成购物车的商品逐条删除功能,用if语句实现商品单行删除功能。

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格操作</title>
    <style>
        table,tr,td{
            border:solid gray;
            text-align:center;
            border-collapse:collapse;
        }
        thead{background-color:lightseagreen;}
        tr td:nth-of-type(2){width:300px;}
        tr td:nth-of-type(3){width:100px;}
        tr td:nth-of-type(4){width:100px;}

    </style>

</head>
<body>
<table id="cart">
    <caption>购物车</caption>
    <thead>
    <tr>
        <td><input type="checkbox" id="all"></td>
        <td>产品名称</td>
        <td>操作方式</td>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>MacBookPro</td>
        <td><button onclick="edit(this)">编辑</button><button onclick="del(this)">删除</button></td>
    </tr>

    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>MateBookXPro</td>
        <td><button onclick="edit(this)">编辑</button><button onclick="del(this)">删除</button></td>
    </tr>

    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>DellG7</td>
        <td><button onclick="edit(this)">编辑</button><button onclick="del(this)">删除</button></td>
    </tr>

    <tr>
        <td><input type="checkbox" name="user-select"></td>
        <td>AlWA51M</td>
        <td><button onclick="edit(this)">编辑</button><button onclick="del(this)">删除</button></td>
    </tr>

    </tbody>
</table>
<button id="del-All" disabled>全部删除</button>
<script>
    // 获取表格
    var table = document.getElementById('cart');
    // 获取tbody
    var tbody = document.getElementsByTagName('table')[0].tBodies[0];
    // 获取全选按钮
    var all = document.getElementById('all');
    // 获取每行的复选框
    var user = document.getElementsByName('user-select');
    // 获取全部删除按钮
    var btn = document.getElementById('del-All');
    // 给全选复选框, 通过input事件, 添加全选功能
    all.addEventListener('input',getAll,false);
    function getAll(){
        // 用if语句判断是否勾选了全选的复选框
        if(all.checked === true){

            // 获取所有被选中的复选框,并将其设置为选中状态
            user.forEach(function (value) {
                value.checked = true;
            });
            // 设置全部删除按钮为可点击状态
            btn.disabled = false;
        }else { // 用户取消了全选按钮
            // 还原所有行的复选框
           user.forEach(function(value){
                value.checked = false;
            });
            // 设置全部删除按钮为禁止状态
            btn.disabled = true;
        }
    }

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

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

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

        }
    }

    // 获取网页中的tbody
    var tbody = document.getElementsByTagName('table')[0].tBodies[0];

    // 删除单个商品的按钮操作函数
    function del(ele) {
        if (confirm('是否确认删除')){
            // ele.parentElement: <td>    //button的父级是<td>
            // ele.parentElement.parentElement: <tr>        //button父级的父级是<tr>

            // 删除tbody中的<tr>
            tbody.removeChild(ele.parentElement.parentElement);
        }
    }


    // 编辑按钮函数
    function edit(ele) {
        // 获取编辑内容,位置在当前按钮的父级元素的前一个兄弟元素
        var td = ele.parentElement.previousElementSibling;
        // 获取原始的内容
        var oldContent = td.innerHTML;
        // 设置编辑对话框,点击确定会返回新的内容,取消会返回null
        var newContent = prompt('请输入要更新的内容',oldContent);

        //用if语句判断,如果返回值不等于null,说明用户点击了确认按钮
        if (newContent !== null) {    //!==  不等于
            td.innerHTML = newContent    //返回为true时,更新内容
        }else {
            return false;       //否则返回null,原内容不改变
        }
    }

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