26-Beego优选全选反选

上一篇文章主要完成了数量的改变,这一篇文章将完成全选.反选.单选/以及总价的计算,可以看出这两篇文章都是利用jQuery操作DOM元素,所以我们改变只是提要,为交化逻辑/选择DOM/监听DOM/修改DOM,好了,现在就让哦我们在新的文章框架下,开始探索前端动态交互吧

效果图.gif

0.交互逻辑

1.全选
通过判断全选选择框的状态来操纵商品选择框的选中状态
2.单选
通过判断单个选择框的状态确定当前商品的选中状态
通过获取购物车总数和选中商品数量确定是否全选,确定全选框的状态
3.计算总价
通过累加各个选中条目商品价格的数值,确定商品总价,由于商品总价与全选/单选/操纵数目+/-都相关,所以单独封装为一个方法,在以上四个方法中调用

2.注意点

1.与Reids数据库进行交互,要确定Redis应用程序是启动的,具体方法为启动任务管理器右键开启对应的Redis6379
2.修改总价要在其它方法的末端执行,不能在刚进入其它方法就执行
3.对于checkbox选择框,自动会随UI界面用户的选择改变checked属性
4.这种交互逻辑非常慢,以后会改进

3.选择DOM

$("元素")
1.#Id
2..ClassName

3.:属性值
4.$("父元素").find("子孙元素")
5.$("子元素").parents("祖先元素"),如果是parent就是父元素
6.$("选中元素").each(function(index,value){$(value)}):对选中的多个元素执行回调函数中的方法
7.选中元素.length:得到选中元素个数

4.监听DOM

1.选择元素.click(function(){}):监听该元素点击事件
2.选择元素.change(function(){}):监听当前元素的变化

5.修改DOM

1.修改输入框
选择输入框.val()
选择输入框.val(变量)
2.修改普通元素
普通元素.text()
普通元素.text(字符串)
3.修改选择框
选择框.prop("checked"):返回true/false
选择框.prop("checked",ischecked(保存从前端获取的状态))

一.全选

1.获取当前选择状态
2.找到其它所有复选框


image.png

二.单选

1.获取当前选择状态
2.获取所有复选框个数
3.获取所有选中复选框个数
4.比较是否全部选中修改全选状态


image.png

三.计算总价方法

1.利用回调函数遍历条目复选框
2.得到每一个复选框对应条目的商品价格
3.累加得到总价
4.在需要的监听变动后,调用此方法


image.png

image.png

你可能感兴趣的:(26-Beego优选全选反选)