JavaScript写购物车

  话不多说,看一下图

代码:


<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>购物车</title>
    <style>
        table{
            border-collapse: collapse;
            width: 1000px;
            margin: 0 auto;
        }
        .title{
            font-size: 14px;
        }
        .face{
            width: 80px;
            height: 80px;
        }
        .name{
            color: red;
            font-size: 12px;
            display: inline-block;
            width: 200px;
            margin-left: 10px;
        }
        td{
            padding: 10px 0;
            min-width: 60px;
        }
        .price{
            font-weight: bold;
            color: black;
        }
        .totle{
            font-weight: bold;
            color: red;
        }
        tr{
            border: 1px solid #bfbfbf;
        }
        .btn button{
            width: 30px;
            height: 30px;
            border-style: none;
            background-color: #d4d4d4;
            outline: none;
            cursor: pointer;
        }
        .btn input{
            width: 30px;
            height: 30px;
            border-style: none;
            text-align: center;
        }
    </style>
</head>
<body>
<table>
    <tr class="title">
        <td><input class="ckbox" type="checkbox"/>全选</td>
        <td>商品信息</td>
        <td>单价</td>
        <td>数量</td>
        <td>金额</td>
        <td>操作</td>
    </tr>
    <tr >
        <td><input class="ckbtn" type="checkbox"/></td>
        <td><img align="left" class="face" src="../img/img.jpg" alt=""/>
            <span class="name">女生包包2018新款 搞怪可爱小包包 特别包包女款萌创意少女丑萌包</span>
        </td>
        <td><span class="price" data-price="39.00">¥39.00</span></td>
        <td class="btn"><button class="btnleft">-</button><input class="txt" type="text" value="1"/><button class="btnright">+</button></td>
        <td><span class="totle" data-totle="39.00">¥39.00</span></td>
        <td>删除</td>
    </tr>
    <tr >
        <td><input class="ckbtn" type="checkbox"/></td>
        <td><img align="left" class="face" src="../img/img.jpg" alt=""/>
            <span class="name">女生包包2018新款 搞怪可爱小包包 特别包包女款萌创意少女丑萌包</span>
        </td>
        <td><span class="price" data-price="39.00">¥39.00</span></td>
        <td class="btn"><button class="btnleft">-</button><input class="txt" type="text" value="1"/><button class="btnright">+</button></td>
        <td><span class="totle" data-totle="39.00">¥39.00</span></td>
        <td>删除</td>
    </tr>
    <tr >
        <td><input class="ckbtn" type="checkbox"/></td>
        <td><img align="left" class="face" src="../img/img.jpg" alt=""/>
            <span class="name">女生包包2018新款 搞怪可爱小包包 特别包包女款萌创意少女丑萌包</span>
        </td>
        <td><span class="price" data-price="39.00">¥39.00</span></td>
        <td class="btn"><button class="btnleft">-</button><input class="txt" type="text" value="1"/><button class="btnright">+</button></td>
        <td><span class="totle" data-totle="39.00">¥39.00</span></td>
        <td>删除</td>
    </tr>
    <tr >
        <td><input class="ckbtn" type="checkbox"/></td>
        <td><img align="left" class="face" src="../img/img.jpg" alt=""/>
            <span class="name">女生包包2018新款 搞怪可爱小包包 特别包包女款萌创意少女丑萌包</span>
        </td>
        <td><span class="price" data-price="39.00">¥39.00</span></td>
        <td class="btn"><button class="btnleft">-</button><input class="txt" type="text" value="1"/><button class="btnright">+</button></td>
        <td><span class="totle" data-totle="39.00">¥39.00</span></td>
        <td>删除</td>
    </tr>
    <tr >
        <td><input class="ckbtn" type="checkbox"/></td>
        <td><img align="left" class="face" src="../img/img.jpg" alt=""/>
            <span class="name">女生包包2018新款 搞怪可爱小包包 特别包包女款萌创意少女丑萌包</span>
        </td>
        <td><span class="price" data-price="39.00">¥39.00</span></td>
        <td class="btn"><button class="btnleft">-</button><input class="txt" type="text" value="1"/><button class="btnright">+</button></td>
        <td><span class="totle" data-totle="39.00">¥39.00</span></td>
        <td>删除</td>
    </tr>
    <tr>
        <td><input type="checkbox" class="ckbox"/>全选</td>
        <td colspan="2">已选商品<span class="number">0</span>件</td>
        <td>合计:<span class="totleprice">0</span>元</td>
        <td colspan="2"><button>结算</button></td>
    </tr>
</table>
<script>
    var ckbox=document.getElementsByClassName("ckbox");//获取全选按钮
    var ckbtn=document.getElementsByClassName("ckbtn");//获取商品前的选择按钮
    var count=0;
    //勾选功能
    for(var i=0;i<ckbtn.length;i++){
        ckbtn[i].onclick=function(){
            if(this.checked){
                count++;
            }
            else{
                count--;
            }
            if(count==ckbtn.length){
                ckbox[0].checked=true;
                ckbox[1].checked=true;
            }
            else{
                ckbox[0].checked=false;
                ckbox[1].checked=false;
            }
            addtotle();
        }
    }
    for(var key in ckbox){
        ckbox[key].index =key;
        ckbox[key].onclick=function(){
            ckbox[this.index==0?1:0].checked=!ckbox[this.index==0?1:0].checked;
            if(this.checked){
                for(var i=0;i<ckbtn.length;i++){
                    ckbtn[i].checked=true;
                }
            }
            else{
                for(var i=0;i<ckbtn.length;i++){
                    ckbtn[i].checked=false;
                }
                count=0;
            }
            addtotle();
        }
    }
    //数量加减
    var btnleft=document.getElementsByClassName("btnleft");
    var btnright=document.getElementsByClassName("btnright");
    var txt=document.getElementsByClassName("txt");
    var price=document.getElementsByClassName("price");
    var totle=document.getElementsByClassName("totle");
    var tprice=document.getElementsByClassName("totleprice");
    var nub=document.getElementsByClassName("number");

    for(var i=0;i<btnleft.length;i++){
        btnleft[i].index=i;
        btnleft[i].onclick=function(){
            var num=txt[this.index].value;
            num--;
            if(num<1){
                num=1
            }
            txt[this.index].value=num;
            addprice(this.index,num);
            addtotle();
        };
        btnright[i].index=i;
        btnright[i].onclick=function(){
            var num=txt[this.index].value;
            num++;
            txt[this.index].value=num;
            addprice(this.index,num);
            addtotle();

        }
    }
    function addprice(index,value){
        totle[index].innerHTML="¥"+(price[index].getAttribute("data-price")*value).toFixed(2);//toFixed(2)保留两位小数
        totle[index].setAttribute("data-totle", (price[index].getAttribute("data-price") * value).toFixed(2));
        //setAttribute() 方法添加指定的属性,并为其赋指定的值。如果这个指定的属性已存在,则仅设置/更改值。
        //getAttribute() 方法返回指定属性名的属性值。
    }

    function addtotle(){
        var totleprice=0;
        var number=0;
        for(var i=0;i<ckbtn.length;i++){
            if(ckbtn[i].checked){
                totleprice+=parseFloat(totle[i].getAttribute("data-totle"));
                number+=parseInt(txt[i].value);
            }
        }
        tprice[0].innerHTML="¥"+totleprice.toFixed(2);
        nub[0].innerHTML=number
    }

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

猜你喜欢

转载自blog.csdn.net/weixin_43684713/article/details/87008701
今日推荐