基础购物车

简介: 基础购物车

使用js制作一个可以加减数量,修改商品信息,添加数量的购物车功能

渲染事件:

function tian() {
        //声明一个str空字符串
        let t = 0;
        let r = 0;
        let str = ""
        //创建for循环,循环获得josn里面的数据
        for (let q = 0; q < data.length; q++) {
          //每次循环的时候总价加等第三个
          t += parseInt(data[q].price) * parseInt(data[q].num)
          //总数量等于每个td的数量的值加等
          r += parseInt(data[q].num)
          //字符串拼接,添加加号、减号,编辑、删除点击事件创建函数,并接收id
          str += `<tr>
        <td>${
          data[q].name
        }</td>
        <td>${
          data[q].price
        }</td>
        <td><button onclick="jiaj(${
          data[q].id
        },1)">+</button>${
            data[q].num
        }<button onclick="jiaj(${
          data[q].id
        },2)">-</button></td>
        <td><button onclick="add(${
          data[q].id
        },1)">编辑</button><button onclick="jiaj(${
          data[q].id
        },3)">删除</button></td>
        </tr>`
        }
        //然后将大框的html内容等于str,渲染表格
        tb.innerHTML = str
        tp.innerHTML = t;
        tq.innerHTML = r;
      }

加减删除按钮点击事件

function jiaj(a, e) {
        for (let i = 0; i < data.length; i++) {
          if (data[i].id == a) {
            if (e == 1) {
              data[i].num++
            } else if (e == 2 && data[i].num > 0) {
              data[i].num--
            } else if (e == 3) {
              // 删除data中的这一组对象
              data.splice(i, 1)
            }
          }
        }
        tian()
      }

添加按钮和编辑按钮点击事件:

function add(a, e) {
        if (e == 1) {
          document.getElementsByTagName("div")[0].style.display = "block";
          //通过id将对象的值放在四个输入框
          for (let u = 0; u < data.length; u++) {
            if (a == data[u].id) {
              document.getElementById("inp4").value = data[u].id;
              document.getElementById("inp1").value = data[u].name;
              console.log(document.getElementById("inp1"))
              document.getElementById("inp2").value = data[u].price;
              document.getElementById("inp3").value = data[u].num;
            } else if (e == 2) {
              document.getElementsByTagName("div")[1].style.display = "block";
            }
          }
        }
      }

编辑确认和添加确认点击事件

function quetian(e) {
        if (e == 1) {
          let inp1 = document.getElementById("inp1");
          let inp2 = document.getElementById("inp2");
          let inp3 = document.getElementById("inp3");
          let inp4 = document.getElementById("inp4");
          //let inp=parseInt(inp1)
          console.log(inp1.value);
          console.log(inp2.value);
          console.log(inp3.value);
          console.log(inp4.value);
          //当四个输入框的值为null时页面中弹窗提示输入框的值为null
          if (inp1.value != '' && inp2.value != '' && inp3.value != '' && inp4.value != '') {
            // 循环所有数据
            for (let d = 0; d < data.length; d++) {
              //当数据中的id等于传递过来的id
              if (inp4.value == data[d].id) {
                //四个数据框的值等于data对象中的值  
                data[d].id = inp4.value
                data[d].name = inp1.value
                console.log(inp1.value);
                data[d].price = inp2.value
                data[d].num = inp3.value
              }
            }
          } else {
            alert("输入框的值为null")
          }
          //引用tian函数
          tian()
          //将输入框内容初始化
          document.getElementById("inp1").value = null
          document.getElementById("inp2").value = null
          document.getElementById("inp3").value = null
          document.getElementById("inp4").value = null
          //将div1隐藏掉
          document.getElementsByTagName("div")[0].style.display = "none"
        } else if (e == 2) {
          //获取到四个输入框的内容
          let inp55 = document.getElementById("inp5").value;
          let inp66 = document.getElementById("inp6").value;
          let inp77 = document.getElementById("inp7").value;
          let inp88 = document.getElementById("inp8").value;
          console.log(inp2)
          //a++  
          // a=data.length+1
          a++
          //在data尾部添加一个对象,对象的name和price以及num和id等于si个输入框的值
          if (inp55 != "" && inp66 != "" && inp77 != "" && inp55 > 0 && inp66 > 0 && inp77 > 0) {
            data.push({
              "name": inp55,
              "price": inp66,
              "num": inp77,
              "id": a
            })
          } else {
            alert("内容不合规范")
          }
          //调用tian函数
          tian()
          //将输入框的内容初始化
          document.getElementById("inp5").value = null;
          document.getElementById("inp6").value = null;
          document.getElementById("inp7").value = null;
          document.getElementById("inp8").value = null;
          //将div2隐藏掉
          document.getElementsByTagName("div")[1].style.display = "none"
        }
      }

取消按钮点击事件

function quxiao1(f) {
        //将table表单下面的div隐藏掉
        if (f == 1) {
          document.getElementsByTagName("div")[0].style.display = "none";
        } else if (f == 2) {
          document.getElementsByTagName("div")[1].style.display = "none";
        }
      }


目录
相关文章
|
前端开发 Java 测试技术
基于SSM的大学生电信诈骗宣传系统设计与实现
基于SSM的大学生电信诈骗宣传系统设计与实现
508 0
|
存储 机器学习/深度学习 监控
生产中的大语言模型(MEAP)(一)(5)
生产中的大语言模型(MEAP)(一)
194 0
|
存储 NoSQL 分布式数据库
Flink 细粒度资源管理问题之调整 slot 配置来提高资源利用效率如何解决
Flink 细粒度资源管理问题之调整 slot 配置来提高资源利用效率如何解决
|
SQL 分布式计算 DataWorks
基于DataWorks的企业订单数据上云实现数据可视化实践
基于DataWorks的企业订单数据上云实现数据可视化实践
|
数据采集 机器学习/深度学习 分布式计算
从0到1搭建车企数字化营销中台(4):客户数据平台(CDP)
CDP作为数字化营销中台的核心数据引擎,承载着拉通客户全渠道、全旅程链路的数据,实现智能洞察和营销决策
3649 0
从0到1搭建车企数字化营销中台(4):客户数据平台(CDP)
|
存储 安全 数据库
数据库期末复习---简答题整理
数据库期末复习---简答题整理
202 0
|
Rust Linux Windows
【RUST 实战】交叉编译之Windows To Linux
【RUST 实战】交叉编译之Windows To Linux
4325 1
【RUST 实战】交叉编译之Windows To Linux
|
消息中间件 存储 分布式计算
【大数据学习篇11】广告点击流实时统计
【大数据学习篇11】广告点击流实时统计
474 0
【大数据学习篇11】广告点击流实时统计
|
领域建模 uml Android开发