1.购物车完整案例

  1 $(function(){
  2     //1.计算总价和小计
  3     productCount();
  4     //2.实现全选复选框的选中功能
  5     isCheckAll();
  6     //3.设置子复选框是否全部选中
  7     isChildCheckAll();
  8     //4.1 给数量的减号添加点击事件
  9     $(".cart_td_6").find("img[alt=minus]").click(function(){
 10         changeNumber(this,false);
 11     });
 12     //4.2.给数量的加号添加点击事件
 13      $(".cart_td_6").find("img[alt=add]").click(function(){
 14         changeNumber(this,true);
 15     });
 16     //5.删除数据行
 17     deleteData();
 18 });
 19 //5.删除数据行
 20 function deleteData(){
 21    //给"删除"    超链接生成点击事件
 22    $(".cart_td_8").find("a").click(function(){
 23          //获取删除的前一行标题行
 24          $(this).parent().parent().prev().remove();
 25          //删除数据行
 26          $(this).parent().parent().remove();
 27          //1.计算总价和小计
 28       productCount();
 29    });
 30    
 31    //给"删除所选"按钮生成点击事件
 32    $("#deleteAll").click(function(){
 33          $("#shopping").find("tr[id]").each(function(i,dom){
 34              //获取子复选框的选中状态
 35              var ischecked=$(dom).children(".cart_td_1").children().is(":checked");
 36            if(ischecked){
 37                //删除前一行标题行
 38                $(dom).prev().remove();
 39                //删除当前数据行
 40                $(dom).remove();
 41            }
 42          });
 43          //1.计算总价和小计
 44       productCount();
 45    });
 46    
 47 }
 48 
 49 //4.商品数量的增加和减少
 50 function changeNumber(dom,flag){
 51     //获取商品数量
 52     var value=$(dom).parent().find("input").val();
 53     //判断是累加和递减
 54     if(flag){
 55         value++;
 56     }else{
 57         value--;
 58         if(value<=0){
 59             value=1;
 60             alert("宝贝数量必须大于0");
 61         }
 62     }
 63     //重新赋值
 64     $(dom).parent().find("input").val(value);
 65     //商品小计
 66     productCount();
 67 }
 68 
 69 //3.设置子复选框是否全部选中
 70 function isChildCheckAll(){
 71     $(".cart_td_1").children().click(function(){
 72          //获取所有子复选框
 73           var checkBoxs=$(".cart_td_1").children();
 74           //获取所有子复选框的数量
 75           var sum=checkBoxs.size();
 76           //定义选中复选框的个数
 77           var k=0;
 78           //循环所有的子复选框,判断是否被选中,并统计选中数量
 79           checkBoxs.each(function(i,dom){
 80                if($(dom).is(":checked")){
 81                    k++;
 82                } 
 83           });
 84           //如果子复选框选中的个数,等于子复选框总数,则全选复选框被选中,否则全选不被选中
 85           if(k==sum){
 86               $("#allCheckBox").attr("checked",true);
 87           }else{
 88               $("#allCheckBox").attr("checked",false);
 89           }
 90     });
 91 }
 92 
 93 
 94 //2.实现全选复选框的选中功能
 95 function isCheckAll(){
 96   //给全选复选框添加点击事件
 97   $("#allCheckBox").click(function(){
 98        //三目运算符,:checked如果选中返回true,否则返回false
 99        var isChecked=$(this).is(":checked");
100        //设置所有子复选框的选中状态和全选同步
101        $(".cart_td_1").children().attr("checked",isChecked);
102   });
103 }
104 
105 //1.计算总价和小计
106 function productCount(){
107     //查找所有的数据行
108     //var $tr=$("#shopping tr[id]);
109     var $tr=$("#shopping").find("tr[id]");
110     //定义总价变量
111     var summer=0;
112     //定义总积分变量
113     var integral=0;
114     //循环所有的数据行计算价格和积分
115     $tr.each(function(i,dom){
116         //获取商品数量
117         var num=$(dom).children(".cart_td_6").find("input").val();
118         //商品小计
119         var price=num*$(dom).children(".cart_td_5").text();
120         //在第七列小计列显示商品价格
121         $(dom).children(".cart_td_7").html(price);
122         //计算总价
123         summer+=price;
124         //计算总积分
125         integral+=$(dom).children(".cart_td_4").text()*num;
126         
127     });
128     //显示总价格
129     $("#total").text(summer);
130     //显示总积分
131     $("#integral").text(integral);
132 }

 

posted @ 2018-01-30 23:56  红酒人生  阅读(1107)  评论(0编辑  收藏  举报