zoukankan      html  css  js  c++  java
  • 购物车单选全选,计算总价,出现个小问题,没找到.....

    按照正常逻辑走这个代码没问题,但有一次我瞎点的时候,总价没有清空,而是继续向上加,然后继续瞎点就找不到这个问题。

    列出来仔细琢磨

    <ul class="shopcar_ul">
                <li class="shopcar_li">
                    <p>
                        <label class=""><input type="checkbox" onclick="onCheck(this)" name="check" sellprice="999.00" qty="1"></label>
                    </p>
                </li>
                <li class="shopcar_li">
                    <p>
                        <label class=""><input type="checkbox" onclick="onCheck(this)" name="check" sellprice="999.00" qty="1"></label>
                    </p>
                </li>
                <li class="shopcar_li">
                    <p>
                        <label class=""><input type="checkbox" onclick="onCheck(this)" name="check" sellprice="222.00" qty="1"></label>
                    </p>
                </li>
    </ul>
    <div class="pay">
    <label><input type="checkbox"><span>全选</span></label>
    <div class="pay_right">
    <p>
    <span>合计:<b class="shop_zjg"></b></span>
    </p>
    </div>
    </div>
    //单选
    var
    sell; var qty; // 商品数量 var jiage; //商品价格 var zongjia = 0; //选中商品的总价 var check = document.getElementsByName("check"); function onCheck(target) { $(this).parent().toggleClass("on"); if (target.checked) { $(".car_pay span").addClass("on"); sell = target.attributes["sellprice"].nodeValue; qty = target.attributes["qty"].nodeValue; jiage = sell * qty; //当前选中商品的价格 zongjia += jiage;//所有选中商品的价格 document.getElementsByClassName('shop_zjg')[0].innerHTML = zongjia; } else { sell = target.attributes["sellprice"].nodeValue; qty = target.attributes["qty"].nodeValue; jiage = sell * qty; zongjia -= jiage; if (zongjia < 0) {//如果全选了在取消选中当前商品,这时候总价为0,所以我重新计算一下所有商品的总价 var qj = 0; for (var i = 0; i < check.length; i++) { var jg = 0; sell = check[i].attributes["sellprice"].nodeValue; qty = check[i].attributes["qty"].nodeValue; jg = sell * qty; qj += jg; } zongjia = qj - jiage; } document.getElementsByClassName('shop_zjg')[0].innerHTML = zongjia; } for (var i = 0; i < check.length; i++) {//这个是判断是否全选的,用循环判断所有checked是否选中,有一个没被选中就不是全选。 if (check[i].checked==true) { $(".pay label span").addClass("on"); } else { $(".pay label span").removeClass("on"); return; } } }
    //全选
                $(".pay label span").click(function () {
                    var quanjia = 0;
                    if ($(this).hasClass("on")) {
                        $(this).removeClass("on");
                        $("label input").prop("checked", false);
                        $("label").removeClass("on");
                        document.getElementsByClassName('shop_zjg')[0].innerHTML = 0;
                    } else {
                        $(this).addClass("on");
                        $("label input").prop("checked", true);
                        $("label").addClass("on");
                        for (var i = 0; i < check.length; i++) {
                            sell = check[i].attributes["sellprice"].nodeValue;
                            qty = check[i].attributes["qty"].nodeValue;
                            jiage = sell * qty;
                            quanjia += jiage;
                        }
                        document.getElementsByClassName('shop_zjg')[0].innerHTML = quanjia;
                        zongjia = 0;
                    }
                    
                });
  • 相关阅读:
    NOIP赛前集训备忘录(含每日总结)(日更?。。。)
    饮一碗鸡汤,换我前进的力量(持续更新......)
    各种用来学习的东西总结
    [FJOI2007]轮状病毒 题解(dp(找规律)+高精度)
    洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找)
    [CQOI2012]模拟工厂 题解(搜索+贪心)
    [CQOI2014]数三角形 题解(组合数学+容斥)
    洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
    洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心)
    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
  • 原文地址:https://www.cnblogs.com/baixiao/p/7812931.html
Copyright © 2011-2022 走看看