基础购物车

简介: 基础购物车

使用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";
        }
      }


目录
相关文章
|
5月前
|
JSON API 开发者
淘宝获取购物车的商品列表 API接口
淘宝提供了获取购物车商品列表 API 接口,允许开发者通过编程方式获取用户购物车中的商品列表。这个 API 接口可以帮助开发者更好地了解用户在购物车中添加了哪些商品,以及每个商品的基本信息,例如商品 ID、名称、价格、数量等。
|
4天前
|
JavaScript
基础购物车功能
基础购物车功能
|
9月前
基础购物车
基础购物车
30 0
|
9月前
|
SQL 前端开发 测试技术
增加购物车商品数量【项目 商城】
增加购物车商品数量【项目 商城】
66 0
uniapp——添加购物车数据以及删除购物车数据
添加购物车数据以及删除购物车数据
147 0
|
前端开发 JavaScript
【畅购商城】购物车模块之修改购物车以及结算
【畅购商城】购物车模块之修改购物车以及结算
144 0
【畅购商城】购物车模块之修改购物车以及结算
|
4天前
|
存储 移动开发 算法
购物车=收藏夹?一文理解淘宝购物车背后的逻辑
提升用户的使用体验才是产品升级的核心,本文将从业务发展以及技术沉淀两个方面来总结淘宝购物车的产品升级之路。
117 0
购物车=收藏夹?一文理解淘宝购物车背后的逻辑
|
前端开发
购物车项目(前端)
购物车项目(前端)
购物车项目(前端)
|
存储 缓存 NoSQL
【浅谈电商】简易购物车模块(一)
近期接到开发任务,需要以图书为中心开发一套书籍在线商城系统,由于之前没有做过相关的系统,借此机会梳理总结一下各个模块的处理逻辑。 简易实现,项目开发中,有更好的想法请指教。
268 0