1.购物车完整案例

摘要:
1$(函数(){2/1。计算总价和小计3productCount();4/2.实现所有复选框5isCheckAll()的选择功能;6/3.设置是否选中所有子复选框7isChildCheckAll();8/4.1添加点击事件9$(“.car_td_6”)。查找(“img[alt=minus]”)。单击(function(){10changeNumber(t
  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 }

免责声明:文章转载自《1.购物车完整案例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2.一号店首页特效2.Eclipse中绑定Tomcat下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DOM事件

主要内容: 1.事件流 2.事件注册 3.事件对象 4.事件分类 5.事件代理 什么是DOM事件? 点击一个DOM元素 键盘按下一个键 输入框输入内容 页面加载完成 1.事件流 DOM事件流经历的三个阶段(w3c标准): 1.捕获阶段(capture phase):从顶层的window到 事件触发节点的父节点。 2.触发阶段/目标...

简单理解Vue中的nextTick

Vue.nextTick是Vue官方给我们提供的一个API(方法),作用是在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM; 那么我们的理解是:当数据发生变化之后,DOM视图并不会立即更新,如果我们在发生变化之后立马去获取某个节点或者某个节点的值,很有可能结果就是undefined;因为Vue实现响应式并不是数据...

javascript之DOM(四其他类型)

一、Text类型 文本节点由Text类型表示,指的是可以以字面意思解释的纯文本内容,其中包含HTML代码。 nodeType=3 nodeName=#text nodeValue=文本内容 parentNode是一个Element nodeValue属性和data属性作用一致,都可以访问文本节点的内容 操作文本节点的内容: appendData(text)...

从零开始学习前端JAVASCRIPT — 6、JavaScript基础DOM

1:DOM(Document Object Model)的概念和作用 document对象是DOM核心对象:对html中的内容,属性,样式进行操作。 节点树中节点之间的关系:父子,兄弟。 2:DOM常用属性 title:返回或设置当前文档的标题。 console.log(document.title); //打印网页标题—读 document....

React的特点和优势

1.虚拟DOM我们以前操作dom的方式是通过document.getElementById()之类的方式,这样的过程实际上是先读取HTML的dom结构,将结构转换成变量,在进行操作而ReactJS定义了一套变量形式的dom模型,一切操作和换算都直接在变量中,这样减少了操作真实dom,性能真实相当的高,和主流MVC框架有本质的区别,并不和dom打交道 2.组...

React Virtual DOM Explained in Simple English

If you are using React or learning React, you must have heard of the term “Virtual DOM”. Now what is a Virtual DOM, and why does React use it? Real DOM First things first, DOM st...