模拟购物车的实现过程(详细讲解)
2017-09-19 08:36
513 查看
我们把购物车的步骤分为了三步
一、加入购物车
二、购物车中物品数量的控制
三、计算金额
下面为实现的代码;(代码也是按照上面的思路写的大家可以看看,看不懂可以参照上面的图片上的步骤)
一、加入购物车
二、购物车中物品数量的控制
三、计算金额
下面为实现的代码;(代码也是按照上面的思路写的大家可以看看,看不懂可以参照上面的图片上的步骤)
<!DOCTYPE html> <html> <head> <title>购物车</title> <meta charset="utf-8" /> <style type="text/css"> h1 { text-align:center; } table { margin:0 auto; width: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>
相关文章推荐
- 模拟购物车的实现过程(详细讲解)
- javascript购物车实现详细代码讲解
- asp.net 实现购物车详细代码
- leetcode 5:Longest Palindromic Substring 三种解法的java实现源代码,以及详细讲解
- 用两个队列模拟实现一个栈的过程
- 详细讲解二叉树三种遍历方式的递归与非递归实现
- asp.net 购物车实现详细代码
- 在多层交换中实现网络的冗余以及详细讲解
- 用JS模拟购物车(jQuery实现)
- 用源码包来实现LAMP 的详细过程
- JAVA语言实现编译原理的LR分析过程模拟
- 百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追JS过程中颇为痛苦
- faster rcnn: 架构实现过程详细介绍
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
- [置顶] Android项目智能机器人的实现,带有源代码,图灵智能机器人,详细讲解。。
- UPNP的工作原理及详细过程及代码实现
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- CentOS7.2系统环境中安装saltstack详细配置过程讲解
- Android解析XML(PULL方式)和JSON 工作原理和实现过程(详细代码)
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程