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 动态加载脚本的4种方法
May 05 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
Aug 05 Javascript
使用jQuery加载html页面到指定的div实现方法
Jul 13 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
vue动画打包后失效问题的解决方法
Sep 18 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
Apr 17 Javascript
VUE中的v-if与v-show区别介绍
Mar 13 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获取根域名方法汇总
2014/10/28 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
javascript OFFICE控件测试代码
2009/12/08 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中类型关系和继承关系实例详解
2015/05/25 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
用python做游戏的细节详解
2019/06/25 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
python实现简单的学生管理系统
2021/02/22 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
机关会计岗位职责
2014/04/08 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
上课说话检讨书500字
2014/11/01 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
运动会100米加油稿
2015/07/21 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸