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 13 Javascript
jQuery之日期选择器的深入解析
Jun 19 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
webpack配置的最佳实践分享
Apr 21 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 Javascript
Vue根据条件添加click事件的方式
Nov 09 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 Javascript
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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
激活 ActiveX 控件
2006/10/09 Javascript
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript 事件查询综合
2009/07/13 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
js快速排序的实现代码
2013/12/08 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
利用python求相邻数的方法示例
2017/08/18 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
初三学生个人自我评定
2014/04/06 职场文书
升职演讲稿范文
2014/05/23 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL