一.购物车

效果图:

功能思路分析:

1. 面向对象框架

2. 模拟数据

1.多个店铺数组套对象

2.每个店铺多个商品,数组套对象

img

3. 渲染数据

先渲染店铺,在渲染店铺中嵌套渲染商品

4. 加购物车

\1. 点击加号按钮计算小计: 小计 = 数量 * 单价

\2. 调用合计方法

5. 减购物车

\1. 点击减号按钮计算小计: 小计 = 数量 * 单价

\2. 判断数量是否小于1

\3. 调用合计方法

6. 合计

\1. 通过选择器查找**( querySelectorAll(‘input.shop:checked’))**,找到所有被选中的商品

\2. 循环拿到每一个商品的数量和小计累加在一起

7. 商品选中

\1. 找到当前店铺下所有的商品

\2. 通过数组的**every()**方法判断,当所有商品都被选中,店铺也被选中

8. 店铺选中

\1. 找到当前店铺下所有的商品

\2. 当前店铺下所有商品的选中状态跟店铺的选中状态保持一致

\9. 删除商品

\1. 点击删除按钮找到对应的商品删除**( removeChild() )**

\2. 当店铺中没有商品时,店铺也跟着删除

#二.今日小结

\1. 上一个元素兄弟节点: previousElementSibling

\2. 下一个元素兄弟节点: nextElementSibling

\3. 父节点: parentNode

\4. 删除节点: removeChild()

\5. 复选框的选中状态: checked

\6. 数组方法every: 每一项都为真时返回true,否则返回false

#三.作业

效果图:

功能思路分析:

1. 菜单显示隐藏

\1. 给文本框绑定获取焦点事件(focus),修改菜单盒子的display样式为block

\2. 给关闭按钮绑定点击事件,修改菜单盒子的display样式为none

2. 渲染一级数据

\1. 封装一个渲染方法render

\2. 盒子显示后默认先渲染一级菜单

3. 渲染二级数据

\1. 给大盒子绑定点击事件,通过事件委托找到对应的一级数据

\2. 点击一级数据时渲染二级数据

\3. 封装一个高亮显示方法,当前点击的高亮显示

4. 渲染三级数据

\1. 在大盒子的事件委托中继续判断点击的数据是不是二级数据

\2. 是则渲染三级数据,并调用高亮方法

5. 点菜

\1. 点击三级数据时,将选中的菜创建到第四个盒子中

\2. 已选数量累加

6. 删除点菜

\1. 点击X时,删除当前选中的菜

\2. 已选数量递减

7. 清空点菜

\1. 点击清空时,删除所有选中的菜

\2. 已选数量为0

8. 确定点菜

\1. 点击确定时,拿到所有选中的菜名,通过split()方法,用&连接在一个。

\2. 将连接后的字符串放入文本框中

\3. 隐藏菜单盒子

js下 Day20、综合案例的更多相关文章

  1. JS 下拉菜单案例

    css代码 .nav { width: 300px; height: 400px; list-style: none; padding:; margin: 0 auto; } .nav>li { ...

  2. js下 Day12、案例

    一.垃圾分类 效果图: 功能思路分析: 1. 鼠标按下 (1) 获取鼠标到元素的距离(e.offsetX) (2) 开启开关变量 (3) 获取事件源 (4) 记录垃圾初始位置 ​  2. 鼠标移动 ( ...

  3. js下 Day11、案例

    一.成绩分类 效果图: 功能思路分析: 1. 渲染数据 2. 鼠标按下开启拖拽 \1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽 \2. 开启控制拖拽的变量 \3. ...

  4. Ext.js入门:常用组件与综合案例(七)

    一:datefield简单示例 二:timefield简单示例 三:numberfield简单示例 四:FormPanel提交   datefield简单示例: <html xmlns=&quo ...

  5. js上 二十、综合案例

    二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...

  6. js上 十九、综合案例

    十九.综合案例 题目一: 封装一个函数equal(a1,a2),传入两个一维数组,判断两个数组是否包含相同的元素,如果相等,函数的返回值为true, 不相等,函数的返回值为false 1)例:arr1 ...

  7. JavaScript:综合案例-表单验证

    综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须 ...

  8. 黑马eesy_15 Vue:04.综合案例(前端Vue实现)

    黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...

  9. JQuery:JQuery基本语法,JQuery选择器,JQuery DOM,综合案例 复选框,综合案例 随机图片

    知识点梳理 课堂讲义 1.JQuery快速入门 1.1.JQuery介绍 jQuery 是一个 JavaScript 库. 框架:Mybatis (jar包) 大工具 插件:PageHelper (j ...

随机推荐

  1. 深度分析:Java多线程,线程安全,并发包

    1:synchronized(保证原子性和可见性) 1.同步锁.多线程同时访问时,同一时刻只能有一个线程能够访问使synchronized修饰的代码块或方法.它修饰的对象有以下几种: 修饰一个代码块, ...

  2. [从源码学设计]蚂蚁金服SOFARegistry之网络封装和操作

    [从源码学设计]蚂蚁金服SOFARegistry之网络封装和操作 目录 [从源码学设计]蚂蚁金服SOFARegistry之网络封装和操作 0x00 摘要 0x01 业务领域 1.1 SOFARegis ...

  3. 循序渐进VUE+Element 前端应用开发(28)--- 附件内容的管理

    在我们很多模块里面,都需要使用到一些诸如图片.Excel文件.PDF文件等附件的管理,一般我们倾向于把它独立为一个公用的附件管理模块,这样可以有效的统一管理附件的信息.本篇随笔介绍附件内容的管理,包括 ...

  4. 在CorelDRAW2019创建对称绘图模式

    对称绘图模式是CorelDRAW 2018推出的全新功能,在2019的版本中又得到了极大的完善,通过对称绘图模式可以创建平衡.和谐.独一无二的效果,对称在大自然中随处可见,因此设计元素很可能将依靠于它 ...

  5. 小程序ui自动化(一),用uiAutormatorViewer定位元素失败,如何解决

    1.定位元素 用android ADT自带工具:uiAutormatorViewer,会报如下错误 可能是环境与手机不兼容 可以用以下方法解决:(参考:https://blog.csdn.net/qq ...

  6. Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

    点波关注不迷路,一键三连好运连连! 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里. 统计员工的最高薪资.平均薪资.薪资之和. 将员 ...

  7. [BUGCASE]Phantom服务代码不健壮导致无法发送报表邮件

    一.问题描述 广告平台中的发报表邮件功能偶尔会出现发送失败的情况,重启phantom服务之后就好了 查看phantom服务的日志发现,在2017-12-12 03:29:45有访问记录,并且参数是异常 ...

  8. moviepy执行TextClip.search方法时报错TypeError: a bytes-like object is required, not str

    ☞ ░ 前往老猿Python博文目录 ░ 执行TextClip.search方法时,报错: >>> from moviepy.editor import * >>> ...

  9. 第6.5节 exec函数:一个自说自话的强大Python动态编译器

    在Python动态执行的函数中,exec是用于执行一个字符串内包含的Python源码或其编译后对应的字节码. 一.    语法 1.    exec(Code, globals=None, local ...

  10. 第15.16节 PyQt(Python+Qt)入门学习:PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用

    老猿Python博文目录 老猿Python博客地址 一.引言 前面一些章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重要核心特性,还是非常有必要单独介绍. 二.信 ...