js简易版购物车功能


Posted in Javascript onJune 17, 2017

本文实例为大家分享了js购物车功能的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }

      li {
        list-style: none;
      }

      li {
        float: left;
        width: 200px;
        border: 1px #000 solid;
        margin: 10px;
      }

      li img {
        width: 200px;
      }

      p {
        height: 20px;
        border-bottom: 1px #333 dashed;
      }

      #bus {
        width: 600px;
        border: 1px #000 solid;
        height: 300px;
        clear: both;
      }

      .box1 {
        float: left;
        width: 200px;
      }

      .box2 {
        float: left;
        width: 200px;
      }

      .box3 {
        float: left;
        width: 200px;
      }

      #allMoney {
        float: right;
      }
    </style>
    <script>
      window.onload = function() {
        var oList = document.getElementById('list');
        var aLi = oList.getElementsByTagName('li');
        var oBus = document.getElementById('bus');

        var obj = {};
        var iNum = 0;
        var allMoney = 0;

        for (var i = 0; i < aLi.length; i++) {
          aLi[i].ondragstart = function(ev) {
            //点击拖拽元素的时候,就设置数据,以后放到购物车的时候数据就可以传过去了
            var ev = ev || window.event;
            var aP = this.getElementsByTagName('p');
            ev.dataTransfer.setData('title', aP[0].innerHTML);
            ev.dataTransfer.setData('price', aP[1].innerHTML);
            ev.dataTransfer.setDragImage(this, 0, 0);
          }
        }

        oBus.ondragover = function(ev) {
          //阻止鼠标默认事件
          var ev = ev || event;
          ev.preventDefault();
        };
        oBus.ondrop = function(ev) {
          var ev = ev || event;
          var title = ev.dataTransfer.getData('title');
          var price = ev.dataTransfer.getData('price');  

          if(!obj[title]){

            var oP = document.createElement('p');
            var oSpan = document.createElement('span');
            oSpan.className = 'box1';
            oSpan.innerHTML = 1;
            oP.appendChild(oSpan);

            var oSpan = document.createElement('span');
            oSpan.className = 'box2';
            oSpan.innerHTML = title;
            oP.appendChild(oSpan);

            var oSpan = document.createElement('span');
            oSpan.className = 'box3';
            oSpan.innerHTML = price;
            oP.appendChild(oSpan);

            oBus.appendChild(oP);

            obj[title] = 1;
          }else{
            var box1 = document.getElementsByClassName('box1');
            var box2 = document.getElementsByClassName('box2');
            for(var i=0;i<box2.length;i++){
              if(box2[i].innerHTML == title){
                box1[i].innerHTML = parseInt(box1[i].innerHTML) + 1;
              };
            };

          };
          //总价
          if(!allMoney){
            allMoney = document.createElement('div');
            allMoney.id = 'allMoney';
          }
          iNum += parseInt(price);
          allMoney.innerHTML = '¥'+iNum;
          oBus.appendChild(allMoney);
        };
      };
    </script>
  </head>

  <body>
    <ul id="list">
      <li draggable="true">
        <img src="img/img1.jpg" />
        <p>javascript语言精粹</p>
        <p>40¥</p>
      </li>
      <li draggable="true">
        <img src="img/img2.jpg" />
        <p>javascript权威指南</p>
        <p>120¥</p>
      </li>
      <li draggable="true">
        <img src="img/img3.jpg" />
        <p>精通javascript</p>
        <p>35¥</p>
      </li>
      <li draggable="true">
        <img src="img/img4.jpg" />
        <p>DOM编程艺术</p>
        <p>45¥</p>
    </ul>
    <div id="bus"></div>
  </body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS获取图片实际宽高及根据图片大小进行自适应
Aug 11 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
关于vue-router路径计算问题
May 10 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
微信小程序后台解密用户数据实例详解
Jun 28 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
Jun 26 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
Webpack如何引入bootstrap的方法
Jun 17 #Javascript
Webpack执行命令参数详解
Jun 17 #Javascript
JS实现留言板功能
Jun 17 #Javascript
利用vscode编写vue的简单配置详解
Jun 17 #Javascript
JavaScript用二分法查找数据的实例代码
Jun 17 #Javascript
JS实现新建文件夹功能
Jun 17 #Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 #Javascript
You might like
PHP中调用JAVA
2006/10/09 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
jquery属性过滤选择器使用示例
2013/06/18 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
node.js中watch机制详解
2014/11/17 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
javascript将非数值转换为数值
2018/09/13 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
Tensorflow简单验证码识别应用
2017/05/25 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
客户代表实习人员自我鉴定
2013/09/27 职场文书
外贸英语毕业生自荐信
2013/11/14 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
护士自荐信范文
2015/03/25 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL