zoukankan      html  css  js  c++  java
  • 模拟购物车的实现过程(详细讲解)

    我们把购物车的步骤分为了三步
    一、加入购物车
    这里写图片描述
    二、购物车中物品数量的控制
    这里写图片描述
    三、计算金额

    这里写图片描述

    下面为实现的代码;(代码也是按照上面的思路写的大家可以看看,看不懂可以参照上面的图片上的步骤)

    <!DOCTYPE html>
    <html>
      <head>
        <title>购物车</title>
        <meta charset="utf-8" />
        <style type="text/css">
          h1 {
            text-align:center;
          }
          table {
            margin:0 auto;
            60%;
            border:2px solid #aaa;
            border-collapse:collapse;
          }
          table th, table td {
            border:2px solid #aaa;
            padding:5px;
          }
          th {
            background-color:#eee;
          }
        </style>
        <script type="text/javascript">
        	//加入购物车
        	//调用函数时传入this(正在点击的那个按钮)
        	//声明函数来接受该值,参数名不能用关键字
        	function add_shoppingcart(btn){
        	    console.log(btn);
        	    //获取此按钮的爷爷tr
        	    var tr = btn.parentNode.parentNode;
        	    console.log("tr");
        	    console.log(tr);
        	    //获取此tr的所有孩子tds
        	    var tds=tr.getElementsByTagName("td");
        	    console.log("tds");
        	    console.log(tds);
        	    //获取第0个孩子的内容(商品名)
        	    var spm=tds[0].innerText;
        	    console.log(spm);
        	    /* var str="";
        	    var ntr =document.createElement("tr");
    			for (var i = 0; i < 2; i++) {
                    var sp=tds[i].innerText;
                    str+="<td>"+sp+"</td>";
                    console.log(str);
                }
    			 ntr.innerHTML=str;
    			 var tbody=document.getElementById("goods");
    			 tbody.appendChild(ntr);  */
        	    //获取第一个孩子的内容(单价)
        	    var dj=tds[1].innerText;
        	    console.log(dj);
        	    //创建一个新的ntr
        	    var ntr =document.createElement("tr");
        	    //给这个新tr设置内容
        	    //ntr.innerHTML="拼td的内容";
        	    //其中商品名和单价拼之前获取的变量
        	    var str='<td>'+spm+'</td>'+
                '<td>'+dj+'</td>'+
                '<td align="center">'+
                  '<input type="button" value="-" onclick="decrease(this)"/> '+
                  '<input type="text" size="3" readonly value="1"/> '+
                  '<input type="button" value="+" onclick="increase(this);"/>'+
                '</td>'+
                '<td>'+dj+'</td>'+
                '<td align="center"><input type="button" value="x" onclick="del(this);"/></td>';
                ntr.innerHTML=str;
        	    console.log(ntr);
        	    //获取tbody(id="goods")
        	    var tbody=document.getElementById("goods");
        	    //向tbody下追加新tr
        	    tbody.appendChild(ntr); 
        	    sum();
        	}
        	
        	/* 删除 */
        	function del(btn){
        	    //获取按钮的爷爷
        	    var tr=btn.parentNode.parentNode;
        	    //删除这个tr
        	    tr.parentNode.removeChild(tr);
        	    sum();
        	}
        	//+操作
        	function increase(btn){
        	    //获取按钮的父亲的孩子
        	    
        	    var sl=btn.parentNode.getElementsByTagName("input")[1];
        	    var a=parseInt(sl.value)+1;
        	    sl.value=a;
        	    //tr
        	    console.log("价格");
        	    var tr=btn.parentNode.parentNode;
        	    var td1=tr.getElementsByTagName("td");
        	    console.log(td1[1].innerText);
        	    console.log(a);
        	    var jg=a*td1[1].innerText;
        	    console.log(jg);
        	    var td3=td1[3].innerText
        	    console.log(td3.innerText);
        	    td1[3].innerText=jg;
        	    sum();
        	}
        	function decrease(btn){
        	    var inputs = btn.parentNode.getElementsByTagName("input");
        	    var amout=inputs[1].value;
        	    if(amout==1){
        	        return;
        	    }
        	    amout.value=--amout;
        	    var tr=btn.parentNode.parentNode;
        	    var tds=tr.getElementsByTagName("td");
        	    var price=tds[1].innerHTML;
        	    tds[3].innerHTML=price*amout;
        	    sum();
        	}
        	
        	
        	
        	//计算价格
        	
        	function sum(){
        	    console.log("sum");
        	    var tbody=document.getElementById("goods");
        	    var trs=tbody.getElementsByTagName("tr");
        	    var s=0;
        	    for (var i = 0; i < trs.length; i++) {
                    var td=trs[i].getElementsByTagName("td")[3];
                    console.log(td);
                    s+=parseInt(td.innerHTML);
                    console.log(s);
                }
        	    var sunt=document.getElementById("total");
        	    sunt.innerText=s;
        	}
        </script>
      </head>
      <body>
        <h1>真划算</h1>
        <table>
          <tr>
            <th>商品</th>
            <th>单价(元)</th>
            <th>颜色</th>
            <th>库存</th>
            <th>好评率</th>
            <th>操作</th>
          </tr>   
          <tr>
            <td>罗技M185鼠标</td>
            <td>80</td>
            <td>黑色</td>
            <td>893</td>
            <td>98%</td>
            <td align="center">
              <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
            </td>
          </tr>
          <tr>
            <td>微软X470键盘</td>
            <td>150</td>
            <td>黑色</td>
            <td>9028</td>
            <td>96%</td>
            <td align="center">
              <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
            </td>
          </tr>
          <tr>
            <td>洛克iphone6手机壳</td>
            <td>60</td>
            <td>透明</td>
            <td>672</td>
            <td>99%</td>
            <td align="center">
              <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
            </td>
          </tr>
          <tr>
            <td>蓝牙耳机</td>
            <td>100</td>
            <td>蓝色</td>
            <td>8937</td>
            <td>95%</td>
            <td align="center">
              <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
            </td>
          </tr>
          <tr>
            <td>金士顿U盘</td>
            <td>70</td>
            <td>红色</td>
            <td>482</td>
            <td>100%</td>
            <td align="center">
              <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
            </td>
          </tr>
        </table>
      
        <h1>购物车</h1>
        <table>
          <thead>
            <tr>
              <th>商品</th>
              <th>单价(元)</th>
              <th>数量</th>
              <th>金额(元)</th>
              <th>删除</th>
            </tr>
          </thead>
          <tbody id="goods">
            <!-- <tr>
              <td>罗技M185鼠标</td>
              <td>80</td>
              <td align="center">
                <input type="button" value="-"/>
                <input type="text" size="3" readonly value="1"/>
                <input type="button" value="+"/>
              </td>
              <td>80</td>
              <td align="center"><input type="button" value="x"/></td>
            </tr> -->
          </tbody>
          <tfoot>
            <tr>
              <td colspan="3" align="right">总计</td>
              <td id="total"></td>
              <td></td>
            </tr>
          </tfoot>
        </table>    
      </body>
    </html>
    
  • 相关阅读:
    win10安装完Ubuntu后重启没有引导页面,直接进入Windows的解决办法 标签: ubuntu 2017-07-02 16:04 41人阅读
    Python小项目三:用curses实现2048 标签: 2048python实验楼游戏 2017-07-01 22:12 50人阅读 评
    Python小项目四:实现简单的web服务器 标签: web服务器网络编程python 2017-06-30 21:43 57人阅读 评论
    英语魔法师之语法俱乐部阅读笔记 标签: 语法俱乐部英语语法 2017-06-30 15:17 24人阅读 评论(0)
    Good Features to track特征点检测原理与opencv(python)实现 标签: pythonopencvgoodfeaturetotrack 2017-06-16 1
    Harris角点检测原理与opencv(python)实现 标签: harris特征点检测角点检测opencv 2017-06-14 19:01 65人阅读
    python “ImportError: No module named XXX”的解决方案 标签: importErrorpython 2017-06-13 15:14
    python小项目二:图片转字符画 标签: pythonPIL 2017-06-12 10:26 19人阅读 评论(0)
    python小项目一:NBA比赛数据分析 标签: python数据分析csv 2017-06-10 20:18 29人阅读 评论(0)
    ubuntu安装卸载遇到的诸多问题 标签: ubuntuwindows 7 2017-06-06 21:08 54人阅读 评论(0)
  • 原文地址:https://www.cnblogs.com/yangliguo/p/7549916.html
Copyright © 2011-2022 走看看