이 글에서는 장바구니에 있는 모든 기능을 언급하겠습니다. 전체 선택 및 단일 선택 금액 변경을 포함합니다. 수량을 늘리면 금액도 변경됩니다.
렌더링 디스플레이:
일반적인 아이디어에 대해 이야기해 보겠습니다.
1. 먼저 라인 가격을 계산합니다. 이 기능은 이전 블로그에서 언급한 바 있어 여기에는 기재하지 않겠습니다.
2. 선택한 행을 순회하고 각 행에 값을 추가합니다.
3. 총액에 값을 할당하고 표시합니다. 수량을 선택 취소하거나 더하거나 빼면 그에 따라 금액이 변경됩니다.
다음은 특정 js 부분입니다.
<script type="text/javascript"> $(function(){ //计算总金额 function totalMoney(){ var total_price = 0; var total_count = 0; $(".d1-input").each(function(){ if($(this).hasClass('status')) { var obj1 = $(this).parent().siblings(".d4").find(".count").val();//获取一行的商品数量 total_count += parseInt(obj1); var obj2= $(this).parent().siblings(".d5").find(".cart-price").text();//获取一行的金额 total_price += parseInt(obj2); } }); $(".item").text(total_count);//将计算出的总金额显示 $(".total").text(total_price);//将计算出的总数量显示 } //全选 $(".d-input").toggle( function(){ $(this).addClass("status"); $(".sc-mid-list .d1-input").addClass("status");//添加勾选样式 $(".sc-mid-list").addClass("mouseover"); totalMoney(); }, function(){ $(this).removeClass("status"); $(".sc-mid-list .d1-input").removeClass("status");//取消勾选样式 $(".sc-mid-list").removeClass("mouseover"); totalMoney(); }); // 单选 $(".d1-input").toggle( function(){ $(this).addClass("status");//添加勾选样式 $(this).parents(".sc-mid-list").addClass("mouseover"); totalMoney(); }, function(){ $(this).removeClass("status");//取消勾选样式 $(this).parents(".sc-mid-list").removeClass("mouseover"); totalMoney(); }); // 减号样式 function count(){ $(".count").each(function(){ var num = $(this).val(); if (num == 1) { $(this).siblings(".reduce").removeClass("two").addClass("one"); $(this).siblings(".reduce").attr("disabled","disabled"); } else { $(this).siblings(".reduce").removeClass("one").addClass("two"); } })//根据数量是否为1,改变减号的样式 } // 加 $(".sc-mid-list .add").click(function(){ var input = $(this).siblings(".count"); var obj = $(this).parents(".d4"); var per = parseFloat(obj.siblings(".d3").find(".per").text());//获取当前一行的单价 var num = ''; var price = ''; input.attr("value", parseInt(input.attr("value")) + 1 );//数量加1 num = input.attr("value"); price = num*per;// obj.siblings(".d5").find(".cart-price").text(price); count(); totalMoney(); }) // 减 $(".sc-mid-list .reduce").click(function(){ var input = $(this).siblings(".count"); var obj = $(this).parents(".d4"); var per = parseFloat(obj.siblings(".d3").find(".per").text());//获取当前一行的单价 var num = ''; var price = ''; var Val = parseInt(input.attr("value")); if(Val <= 1){ Val = 2; } input.attr("value", parseInt(Val) - 1 );//数量减1 num = input.attr("value"); price = num*per;// obj.siblings(".d5").find(".cart-price").text(price); count(); }) }) </script>
jquery는 Taobao의 장바구니 항목 정산 기능을 모방합니다 - 소스 코드 다운로드 포함