电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

原生js實現購物車

瀏覽:99日期:2024-04-18 17:45:41

原生就js實現購物車增刪改查,供大家參考,具體內容如下

效果圖:

原生js實現購物車

代碼:

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title></title> <style type='text/css'> *{ margin:0;padding:0; } .fl{ float: left; } .fr{ float: right; } .clearfix{ clear: both; zoom: 1; } .shopping{ width: 1200px; margin: 0 auto; font-size: 14px; } .shopping .header{ width: 100%; height: 50px; line-height: 50px; background: #ccc; color: #000000; font-weight: bold; text-align: left; } .shopping .header ul{ padding-left: 30px; } .shopping .header ul li{ width: 190px; list-style: none; } .shopping .footer{ width: 100%; height: 50px; background: #ccc; color: #000000; text-align: left; } .shopping .footer .footlf{ width: 200px; line-height: 50px; margin-left: 30px; } .shopping .footer .footrg{ width: 600px; text-align:right; } .shopping .footer .footrg span:nth-child(1){ display: inline-block; padding: 0px 25px; background: black; color: white; line-height: 48px; margin-right: 20px; } .shopping .footer .footrg span:nth-child(2),.shopping .footer .footrg span:nth-child(3){ display: inline-block; margin-right: 20px; } .shopping .footer .footrg span:nth-child(4){ font-size:16px; font-weight: bold; line-height: 50px; margin-right: 50px; } .shopping .footer .footrg s{ color: red; } .content{ margin: 10px 0px; } .content dl{ margin-bottom: 20px; } .content dl dt{ border: 1px solid #CCCCCC; height: 30px; line-height: 30px; font-weight: bold; } .content dl dt{ padding-left: 20px; } .content dl dd{ padding-left: 20px; border: 1px solid #CCCCCC; height: 100px; line-height: 100px; border-top: none; } .content dl dd ul li{ list-style: none; } .content dl dd ul li img{ width: 80px; height: 80px; vertical-align: middle; } .content dl dd ul li{ width: 190px; } .content dl dd ul li s{ color: red; font-weight: bold; } .content dl dd ul li input{ width: 30px; } s{ text-decoration: none; } .content .del{ cursor: pointer; } .minus{ padding: 0px 10px; background: red; cursor: pointer; } .plus{ padding: 0px 10px; background: red; cursor: pointer; } input{ cursor: pointer; } </style> </head> <body> <div class='shopping'> <div class='header clearfix'> <ul> <li class='fl'><input type='checkbox' name='' class='all'>全選</li> <li class='fl'>商品</li> <li class='fl'>單價</li> <li class='fl'>數量</li> <li class='fl'>價格</li> <li class='fl'>操作</li> </ul> </div> <div class='content'> <dl> <dt>店鋪:xxx快餐店1</dt> <dd> <ul> <li class='fl'><input type='checkbox' name='' class='ischeck'></li> <li class='fl'> <img src='http://www.hdgsjgj.cn/bcjs/imges/01.jpg' /> <span>涼茶</span> </li> <li class='fl'> <s>$<span class='price'>100</span></s> </li> <li class='fl'> <span class='minus'>-</span> <input type='text' name='' value='1'> <span class='plus'>+</span> </li> <li class='fl'> <s>$<span class='price_sum'>100</span></s> </li> <li class='fl'> <span class='del'>刪除</span> </li> </ul> </dd> </dl> <dl> <dt>店鋪:xxx快餐店2</dt> <dd> <ul> <li class='fl'><input type='checkbox' name='' class='ischeck'></li> <li class='fl'> <img src='http://www.hdgsjgj.cn/bcjs/imges/02.jpg' /> <span>涼茶2</span> </li> <li class='fl'> <s>$<span class='price'>200</span></s> </li> <li class='fl'> <span class='minus'>-</span> <input type='text' name='' value='1'> <span class='plus'>+</span> </li> <li class='fl'> <s>$<span class='price_sum'>200</span></s> </li> <li class='fl'> <span class='del'>刪除</span> </li> </ul> </dd> </dl> <dl> <dt>店鋪:xxx快餐店3</dt> <dd> <ul> <li class='fl'><input type='checkbox' name='' class='ischeck'></li> <li class='fl'> <img src='http://www.hdgsjgj.cn/bcjs/imges/02.jpg' /> <span>涼茶3</span> </li> <li class='fl'> <s>$<span class='price'>300</span></s> </li> <li class='fl'> <span class='minus'>-</span> <input type='text' name='' value='1' > <span class='plus'>+</span> </li> <li class='fl'> <s>$<span class='price_sum'>300</span></s> </li> <li class='fl'> <span class='del'>刪除</span> </li> </ul> </dd> </dl> </div> <div class='footer clearfix'> <div class='footlf fl'> <input type='checkbox' name='' class='all_is'>反選 <input type='checkbox' name='' id='cancel'>取消 </div> <div class='footrg fr'> <span>繼續購物</span> <span>已選商品<s id='piece'>0</s>件</span> <span>合計(不含運費):¥<s class='sum_'>0.00</s></span> <span>結算</span> </div> </div> </div> </body> <script type='text/javascript'> //購物車功能要求 //1.勾選全選框 商品勾選狀態為已勾選狀態 并且計算商品合計 單價合計 //2.取消勾選時取消所以商品勾選 var del=document.getElementsByClassName('del');//刪除 var dl=document.getElementsByTagName('dl'); var all=document.getElementsByClassName('all')[0];//獲取全選按鈕 var all_is=document.getElementsByClassName('all_is')[0];//獲取取反按鈕 var ischeck=document.getElementsByClassName('ischeck');//獲取商品勾選狀態復選框節點 var minus=document.getElementsByClassName('minus');//商品減 var plus=document.getElementsByClassName('plus');//商品加 var count=document.getElementsByClassName('count');//商品數量 var price=document.getElementsByClassName('price');//獲得單價 var price_sum=document.getElementsByClassName('price_sum');//獲得商品價格 var sum_=document.getElementsByClassName('sum_')[0];//獲得商品總價格 var piece=document.getElementById('piece');//已選商品件數 var cancel=document.getElementById('cancel');//取消選擇 //全選功能 all_(); function all_(){ all.onchange=function(){ //當全選框狀態為ture 的時候循環勾選 商品狀態 為false 則相反 if(all.checked){ for(var i=0;i<ischeck.length;i++) { ischeck[i].checked=true; } piece_();//已選商品件數 } else{ for(var i=0;i<ischeck.length;i++) { ischeck[i].checked=false; } piece_();//已選商品件數 } shss();//每次商品勾選或者數量發生改變計算總額數 } } //商品狀態勾選 comm_ischeck(); function comm_ischeck(){ for (var i=0;i<ischeck.length;i++) { (function(j){ ischeck[j].onclick=function(){ shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 for (var k=0;j<ischeck.length;k++) {//循環判斷商品勾選狀態 if (!ischeck[k].checked) {//如果有一個為flase 則全選框取消勾選 all.checked = false; break; //結束循環 } //否則勾選 all.checked =true; } } })(i) } } //反選 all_iss(); function all_iss(){ all_is.onchange=function(){ //循環遍歷勾選狀態 商品狀態勾選則取消勾選 for(var i=0;i<ischeck.length;i++){ ischeck[i].checked = ischeck[i].checked?false:true; } shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 } } //減少商品 add_is(); function add_is(){ for(var i=0;i<minus.length;i++){ (function(i){ minus[i].onclick=function(){ if(parseInt(count[i].value)<2){ count[i].value=1; } else{ count[i].value=parseInt(count[i].value)-1; } // parseInt(count[i].value) 因為得到的value 是string 類型 運算需要進行類型轉換 //如果數量值<1默認為0 //count[i].value=parseInt(count[i].value)<1?0:(parseInt(count[i].value)-1); var pric=price[i].innerHTML;//商品單價 price_sum[i].innerHTML=parseInt(pric)*parseInt(count[i].value);//商品總結價格等于=商品單價*商品數量 shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 } })(i) } } //添加商品 add(); function add(){ for(var i=0;i<plus.length;i++){ //立即執行函數得到下標 (function(i){ plus[i].onclick=function(){ var pric=price[i].innerHTML;//商品單價 //因為得到的value 是string 類型 運算需要進行類型轉換 count[i].value=parseInt(count[i].value)+1;//改變數量值 price_sum[i].innerHTML=parseInt(pric)*parseInt(count[i].value);//商品總結價格等于=商品單價*商品數量 shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 } })(i) } } //count count_(); function count_(){ for(var i=0;i<count.length;i++){ (function(i){ count[i].onchange=function(){ var pric=price[i].innerHTML;//商品單價 //因為得到的value 是string 類型 運算需要進行類型轉換 count[i].value=parseInt(count[i].value)+1;//改變數量值 price_sum[i].innerHTML=parseInt(pric)*parseInt(count[i].value);//商品總結價格等于=商品單價*商品數量 shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 } })(i) } } //計算已選商品件數 piece_(); function piece_(){ piece.innerHTML=0; for(var i=0;i<ischeck.length;i++){ if(ischeck[i].checked){ piece.innerHTML=parseInt(piece.innerHTML)+parseInt(count[i].value); } } } //計算商品總額 shss(); function shss(){ sum_.innerHTML=0; for(var i=0;i<ischeck.length;i++){ if(ischeck[i].checked){ console.log(sum_.innerHTM); sum_.innerHTML=parseInt(sum_.innerHTML)+parseInt(price_sum[i].innerHTML); } } } //取消選擇 cancel_(); function cancel_(){ //取消按鈕點擊事件 cancel.onclick=function(){ for(var i=0;i<ischeck.length;i++){ ischeck[i].checked=false; } shss(); piece_(); } } //刪除 del_(); function del_(){ for(var i=0;i<del.length;i++){ (function(i){ del[i].onclick=function(){ dl[i].parentNode.removeChild(dl[i]); shss();//每次商品勾選或者數量發生改變計算總額數 piece_();//每次商品勾選狀態發生變化計算已選商品件數 } })(i) } } </script></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 创客匠人-让IP变现不走弯路 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 公交驾校-北京公交驾校欢迎您!| 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 温州富欧金属封头-不锈钢封头厂家| 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 |