16 - 购物车案例

var check = getClass("check");
var cartTable = document.getElementById("cartTable");
var tr = cartTable.tBodies[0].rows;
var priceTotal = document.getElementById("priceTotal");
var foot = document.getElementById("foot");
var selectedViewList = document.getElementById("selectedViewList");

//获取所有 check
function getClass(check){
    var arr = [];
    var doms = document.getElementsByTagName("*");
    for(var i = 0; i<doms.length; i++){
        if(doms[i].className == check || doms[i].className.indexOf(""+check) != -1 || doms[i].className.indexOf(check+"") != -1){
             arr.push(doms[i]);
        }
     }
     return arr;
 }

//添加全选
for(var i=0;i<check.length;i++){
    check[i].onclick = function(){
        if(this.className == "check-all check"){
            for(var i=0;i<check.length;i++){
                check[i].checked = this.checked;
            }
        }
        getTotal()
    }
}


//查看已勾选商品
foot.onclick = function(){
    if(selectedTotal.innerHTML != 0){
        this.className = "foot show";
    }else{
        this.className = "foot";
    }
}



//取消商品
selectedViewList.onclick = function(e){
    var e = window.event || e;
    var tar = e.target || e.srcElement;

    if(tar.nodeName == "SPAN"){
        tr[tar.getAttribute("index")].getElementsByTagName("input")[0].checked = false;
        tr[tar.getAttribute("index")].getElementsByTagName("input")[0].onclick()
    }
    
}

//加减 
for(var i=0;i<tr.length;i++){
    tr[i].onclick =function(e){
        var input = this.getElementsByTagName("input")[1];
        var e = window.event || e;
        var tar = e.target || e.srcElement;
        var val = parseInt(input.value);

        switch(tar.className){
            case "add":
                input.value = val+1;
                subTotal(this);
                break;
            case "reduce":
                if(val <= 1){
                    val =1;    
                }else{
                    input.value = val-1;
                }
                subTotal(this);
                break;
            case "delete":
                this.parentNode.removeChild(this);
                break;
        }
        getTotal();
    }
}

//加减优化小计
function subTotal(tr){
//小计
    var td2 = tr.cells[2];
    var td4 = tr.cells[4];
    var inputs = tr.getElementsByTagName("input")[1];
    td4.innerHTML = (td2.innerHTML * inputs.value).toFixed(2); 


//-
    var reduce = tr.getElementsByTagName("span")[1];
    if(tr.getElementsByTagName("input")[1].value == 1){
        reduce.innerHTML = "";
    }else{
        reduce.innerHTML = "-";
    }
}



//结算添加   函数
function getTotal(){
    var select = 0;
    var price = 0;
    var lis = "";

    for(var i=0; i<tr.length; i++){
        if(tr[i].getElementsByTagName("input")[0].checked){
            
            select += parseInt(tr[i].getElementsByTagName("input")[1].value);

            price += parseFloat(tr[i].cells[4].innerHTML);
            
            lis += "<div><img src='"+tr[i].getElementsByTagName("img")[0].src+"'><span index='"+ i +"'>取消选择</span></div>"
        } 
    }
    selectedTotal.innerHTML = select;
    priceTotal.innerHTML = price.toFixed(2);
    selectedViewList.innerHTML = lis;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值