购物车的实现 js

此实验的注意事项:

  • 对于button的disabled的属性的掌握不足,导致数量减少到0后再点击增加后数量增加仍没有减少的功能,disabled在js中必须用true或false,开始一直用‘true'导致错误,注意是关键字啊;
  • 对于children与childNode的理解不足,不知道此可以检测到空文本节点,所以导致调试半天也没反应,所以即使清除文本节点;
  • 注意各个事件所触发的事件,注意联动效果;
  1 <!doctype html>
  2 <html>
  3 <head>
  4 <meta charset="utf-8">
  5 <title>无标题文档</title>
  6 <style>
  7     .table_css{
  8         border:#5524E3 2px solid;
  9         background:#E5CDCE;
 10         margin-left:400px;
 11     }
 12     td{
 13         border:#1749BC 1px solid;
 14         text-align:center;
 15     }
 16     button{
 17         background:#3AD8A9;
 18         color:#EC214D;
 19         width:20px;
 20     }
 21     #money{
 22         background:#9B9494;
 23         width:30px;
 24     }
 25     #add{
 26         width:80px;
 27     }
 28     .hr_css{
 29         height:10px;
 30         width:100%;
 31         background:#D825D2;
 32     }
 33     #goods{
 34         width:580px;
 35     }
 36 </style>
 37 
 38 <script>
 39     function $(id){
 40         return document.getElementById(id);
 41     }
 42     window.onload=function(){
 43         var add=$('add');
 44         add.onclick=addgoods;
 45     }
 46     function addgoods(){
 47         var goods = document.getElementsByTagName('tr');
 48         var name=$('name').value;
 49         //判断此元素是否存在于购物车中
 50         for(var i=3;i<goods.length;i++){
 51             if(goods[i].firstChild.innerHTML==name){
 52                 alert('此物品已经添加!');
 53                 return;
 54             }
 55         }
 56         
 57         var price=$('price').value;
 58         var amount=$('amount').value;
 59         var t=$('goods');
 60         var tr=t.insertRow(1);
 61         //分别创建列
 62         var td_1 = tr.insertCell(0);
 63         td_1.innerHTML = name;
 64         
 65         var td_2 = tr.insertCell(1);
 66         td_2.innerHTML = price;
 67         
 68         var td_3 = tr.insertCell(2);
 69         //-------------------------------
 70         var remove_1=document.createElement('button');
 71         remove_1.id='remove_1';
 72         remove_1.innerHTML='-';
 73         td_3.appendChild(remove_1);
 74         remove_1.onclick=function(){
 75             var count_text = this.parentNode.firstChild.nextSibling;
 76             //判断数量
 77             if(count_text.value<=0){
 78                 this.disabled=true;//"disabled"; 
 79                 return;
 80             }
 81             //数量减少
 82             count_text.value = window.parseInt(count_text.value)-1;
 83             //总价减少
 84             this.parentNode.nextSibling.innerHTML = count_text.value*price;
 85             //购物车的总价减少
 86             $('money').innerHTML=window.parseInt($('money').innerHTML)-price;
 87             //数量减少
 88             amount-=1;
 89         }
 90         //nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 91         var td_amount = document.createElement('input');
 92         td_amount.type="text";
 93         td_amount.value = amount;
 94         td_amount.style.background="#E5CDCE";
 95         td_amount.style.textAlign='center';
 96         td_amount.onblur=function(){
 97             var cc=td_amount.value;
 98             if(cc==amount)
 99                 return;
100             else{
101                 $('money').innerHTML=window.parseInt($('money').innerHTML)+cc*price-this.parentNode.nextSibling.innerHTML;
102                 this.parentNode.nextSibling.innerHTML=cc*price;
103             }
104         }
105                 
106         td_3.appendChild(td_amount);
107         //++++++++++++++++++++++++++++++++
108         var add_1=document.createElement('button');
109         add_1.id='add_1';
110         add_1.innerHTML='+';
111         td_3.appendChild(add_1);
112         add_1.onclick=function(){
113             this.parentNode.firstChild.disabled=false; 
114             //数量增加
115             var count_text = this.parentNode.firstChild.nextSibling;
116             count_text.value = window.parseInt(count_text.value)+1;
117             //总价增加
118             this.parentNode.nextSibling.innerHTML = count_text.value*price;
119             //购物车的总价增加
120             $('money').innerHTML=window.parseInt($('money').innerHTML)+window.parseInt(price);
121             //数量增加
122             amount+=1;
123         }
124         
125         var td_4 = tr.insertCell(3);
126         td_4.innerHTML = price*amount;
127         
128         var td_5 = tr.insertCell(4);
129         var remove = document.createElement('button');
130         remove.innerHTML = "删除";
131         remove.style.width= '50px';
132         remove.onclick = function() {
133             var remove_tr = this.parentNode.parentNode;
134             //购物车中的元素减少,钱也相应的减少
135             $('money').innerHTML=window.parseInt($('money').innerHTML)-td_4.innerHTML;
136             //移除元素
137             $('goods').firstChild.removeChild(remove_tr);
138         }
139         td_5.appendChild(remove);
140         
141         //总的价格变化
142         var count_all=$('money').innerHTML;
143         $('money').innerHTML=price*amount+window.parseInt(count_all);
144     }
145         
146 </script>
147 
148 </head>
149 
150 <body>
151 <table class="table_css">
152     <tr>
153         <td>物品</td>
154         <td>价格</td>
155         <td>数量</td>
156         <td></td>
157     </tr>
158     <tr>
159         <td><input type="text" id="name"></td>
160         <td><input type="text" id="price"></td>
161         <td><input type="text" id="amount"></td>
162         <td><button id="add">添加</button></td>
163     </tr>
164 </table>
165 <hr class="hr_css">
166 <table id="goods" class="table_css"><tr>
167         <td>物品</td>
168         <td>价格</td>
169         <td>数量</td>>
170         <td>总价</td>
171         <td></td>
172     </tr>
173 </table>
174 总计:<label id="money">0</label>175 </body>
176 </html>

 

转载于:https://www.cnblogs.com/dashen/p/3897971.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript购物车实现的效果可以非常丰富和实用。通过使用JavaScript编写的购物车功能,可以构建一个类似于电子商务网站中常见的购物车系统。 首先,在网页的商品列表中,通过JavaScript代码将每个商品的信息进行绑定和处理。当用户点击将商品添加到购物车按钮时,JavaScript将捕获用户的点击事件,并从商品列表中获取相关信息,例如商品的id、名称、价格以及数量等。 接下来,JavaScript会将获取到的商品信息保存到一个购物车对象中,这个购物车对象可以是一个数组或者是一个json对象。购物车对象会在用户点击添加商品按钮时实时更新,以反映当前购物车中的商品情况。 同时,JavaScript还会对购物车进行一些额外的处理。例如,当用户点击购物车图标时,JavaScript会将购物车对象中的商品信息动态显示在购物车弹窗中,包括商品的名称、价格和数量等。用户还可以在购物车中修改商品数量、删除商品或者清空购物车等操作。 此外,JavaScript还可以实现一些购物车的功能增强。例如,当用户修改商品的数量时,JavaScript会自动更新购物车中的商品总价和数量,并将其实时展示给用户。另外,JavaScript还可以对购物车中的商品进行排序、搜索和筛选等操作,以提供更好的用户体验。 总之,通过使用JavaScript实现购物车功能,我们可以实现一个用户友好、交互性强的购物车系统,为用户提供便捷、高效的购物体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值