核心提示:1.cart.js页面 购物车页面!DOCTYPE htmlhtmlheadmeta charset=UTF-8titlecart/title!--引入bootstrap.css--link rel=...
1.cart.js页面 购物车页面
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>cart</title> <!--引入bootstrap.css--> <link rel="stylesheet" type="text/css" href="../../bootstrap/css/bootstrap.css"/> <!--引入myscss.css--> <link rel="stylesheet" type="text/css" href="../../css/myscss.css" /> <!--引入jquery.js--> <script type="text/javascript" src="../../bootstrap/js/jquery-3.1.1.js"></script> <!--bootstrap.js--> <script type="text/javascript" src="../../bootstrap/js/bootstrap.js"></script> <!--head.js--> <script type="text/javascript" src="../common/head.js"></script> <!--cart.js--> <script type="text/javascript" src="cart.js"></script> </head> <body> <!--公用头部--> <p id="navhead"></p> <!--主体部分--> <p class="container"> <p class="row"> <p class="col-md-1"></p> <p class="col-md-10"> <!--content头部图片--> <img src="../../img/otherimages/buy1.gif" /> <!--content中的table--> <p class="panel panel-info margintop"> <p class="panel-heading text-center"><h4><strong>购物车列表</strong></h4></p> <p id="cartable"> <!--<table class="table text-center"> <tr class="danger"> <th class="text-center">序号</th> <th class="text-center">商品名称</th> <th class="text-center">价格</th> <th class="text-center">购买数量</th> <th class="text-center">库存</th> <th class="text-center">小计</th> </tr> <tr> <td>0</td> <td>Java模式</td> <td>21.5</td> <td><a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>1<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a></td> <td>100</td> <td>21.5</td> </tr> <tr> <td>1</td> <td>javascript</td> <td>18.5</td> <td>1</td> <td>100</td> <td>18.5</td> </tr> </table>--> </p> <p class="panel-footer clearfix"><span class="pull-right">总计</span></p> </p> </p> <p class="col-md-1"></p> </p> </p> </body> </html>
2.cart.js代码 实现动态修改购买条数和总计
//购物车动态添加购物车信息 $(function(){ //1.从localStorage获取购物信息 var books = localStorage.getItem("carts"); var bookArr = JSON.parse(books);//将获取到的字符串存放进数组中 //2.声明一个html用来拼接页面 var html = ""; html += "<table id='cart' class='table text-center'>"; html += "<tr class='danger'>"; html += "<th class='text-center'>序号</th>"; html += "<th class='text-center'>商品名称</th>"; html += "<th class='text-center'>价格</th>"; html += "<th class='text-center'>购买数量</th>"; html += "<th class='text-center'>库存</th>"; html += "<th class='text-center'>小计</th>"; html += "</tr>"; //3.遍历数组 for(var i = 0;i < bookArr.length;i++){ //获取一本书 var abook = bookArr[i]; //将书本的信息填到表格中 html += "<tr>"; html += "<td>"+i+"</td>"; html += "<td>"+abook.name+"</td>"; html += "<td>"+abook.price+"</td>"; html += "<td><a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>"+abook.buynum+"<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a></td>"; html += "<td>"+abook.num+"</td>"; html += "<td>"+abook.price*abook.buynum+"</td>"; html += "</tr>"; } html += "</table>"; $("#cartable").html(html); }); //点击减号按钮 function subBuyNum(caller){ calFunction(caller,"sub"); } //点击加号按钮 function addBuyNum(caller){ calFunction(caller,"add"); } //优化代码 function calFunction(caller,tag){ //得到当前调用者的父节点 var $parent = $(caller).parent(); //找到父节点的文本信息 var buyNum = parseInt($parent.text()); //判断当前是+还是- if(tag == "sub"){ //减号 if(buyNum>=2){ buyNum--; } } //加号 else{ buyNum++; } //4.拼接html信息,把html放到parent中 var html = ""; html += "<a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>"+buyNum+"<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a>"; $parent.html(html); //5.找到价格元素的信息 var $price = $parent.prev(); var price = parseFloat($price.text()); //6.修改小计元素的信息 var $lastB = $parent.next().next(); $lastB.text(price*buyNum); //7.修改总计元素的信息 calTotal(); //8.修改本地购物车的数量 //8.1找到序号数列 var $first = $parent.parent().children(":first-child"); var n = parseInt($first.text()); modiyBuyNum(n,buyNum); } //计算当前购物车的总价格 function calTotal(){ var $totalPrice = $("#totalprice"); //找到table里面的tbody,其实table的所有正文信息都放在tbody里面 var $table = $("#cart").children(); var $children = $table.children(":not(:first)"); var $rowprices = $children.children(":last-child"); var totalp = 0; $rowprices.each(function(){ var p = parseFloat($(this).text()); totalp += p; }) $totalPrice.text("总计:"+totalp); } //页面一载入就计算总计购物车的总价信息 $(function(){ calTotal(); }) //修改本地购物车的数量 function modiyBuyNum(idx,buynum){ //1.获取本地购车的数据(字符串) var books = localStorage.getItem("carts"); //2.把字符串转换为数组对象 var bookArr = JSON.parse(books); //3.从数组中获取指定idx的数据 var abook = bookArr[idx]; //4.修改这条数据 abook.buynum = buynum; //5.重新保存购物车 var booksStr = JSON.stringify(bookArr); localStorage.setItem("carts",booksStr); }
3.效果图片