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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

原生js實(shí)現(xiàn)購(gòu)物車(chē)功能

瀏覽:102日期:2024-04-18 15:21:57

本文實(shí)例為大家分享了js實(shí)現(xiàn)購(gòu)物車(chē)功能的具體代碼,供大家參考,具體內(nèi)容如下

使用html配合原生js實(shí)現(xiàn)購(gòu)物車(chē)功能

* 實(shí)現(xiàn)購(gòu)物車(chē)商品數(shù)量的加減,注意數(shù)量最少為1,數(shù)量輸入僅能為數(shù)字* 實(shí)現(xiàn)購(gòu)物車(chē)商品的移除* 可以在同一頁(yè)面再設(shè)計(jì)幾個(gè)商品信息,每個(gè)商品有價(jià)格,圖片,名稱,以及添加至購(gòu)物車(chē)按鈕,點(diǎn)擊按鈕后添加至購(gòu)物車(chē)* 實(shí)現(xiàn)購(gòu)物車(chē)商品的總價(jià)計(jì)算

<!doctype html><html lang='en'><head> <meta charset='UTF-8'> <title>商品</title> <style> html,body{ margin: 0;} .row{ width:100%; height:300px; } .col{ width:200px; height:216px; margin: 0px 1px 0px 1px; padding-top: 2px; border:solid black 1px; float:left; text-align:center; } .col img { width: 150px;} </style> <script src='http://www.hdgsjgj.cn/bcjs/js/jquery-3.2.1.min.js'></script> <script> function calculate() { var tbody = document.getElementById('tb'); var prices = tbody.querySelectorAll('td:nth-child(4)'); var numbers = tbody.querySelectorAll('td:nth-child(5)>input[type=number]'); var checkboxes = tbody.querySelectorAll('th:nth-child(1)>input'); //console.log(prices); //console.log(numbers); //console.log(checkboxes); var total=0; for(var i = 0; i < prices.length; i++) { console.log('價(jià)格:' +parseInt(prices[i].innerText)+' 數(shù)量:'+parseInt(numbers[i].value) + '是否勾選:' + checkboxes[i].checked); if(checkboxes[i].checked){ total += parseInt(prices[i].innerText)*parseInt(numbers[i].value); } } console.log('總價(jià)格:' + total); document.getElementById('total').innerText = total; } // 移除商品 function del(me) { var tr = me.parentNode.parentNode; var tbody = tr.parentNode; tbody.removeChild(tr); calculate(); } // 增加商品數(shù)量 function jia(me) { var td = me.parentNode; var inputs = td.getElementsByTagName('input'); // 找到此td下所有input標(biāo)簽 // inputs[1].value = inputs[1].value - 0 + 1; // 用-0的辦法轉(zhuǎn)為數(shù)字 // parseInt 將字符串轉(zhuǎn)整數(shù) parseFloat 將字符串轉(zhuǎn)小數(shù) inputs[1].value = parseInt(inputs[1].value) + 1; calculate(); } // 減少商品數(shù)量 function jian(me) { var td = me.parentNode; var num = td.querySelector('input[type=number]');// 只查找有type=number屬性的input標(biāo)簽 var r = num.value - 1; if( r >= 1) { // 只有減得的結(jié)果是大于等于1的情況下才需要改變文本框的值 num.value = r; calculate(); } } // 改變復(fù)選框的選中狀態(tài) function check(me) { var tbody = document.getElementById('tb'); var inputs = tbody.querySelectorAll('th input'); for(var i = 0; i <inputs.length; i++) { inputs[i].checked = me.checked; // 根據(jù)me的checked狀態(tài)去修改下面的每個(gè)checked狀態(tài) } calculate(); } // 添加商品至購(gòu)物車(chē) function add(me) { var tbody = document.getElementById('tb'); var div = me.parentNode; var spans = div.getElementsByTagName('span'); // 獲得商品名字和價(jià)格的span var name = spans[0].innerText; // 獲得商品名字 var col_1 = tbody.querySelectorAll('td:nth-child(2)'); // nth-child 作為第幾個(gè)孩子 var found = null; // found 變量代表購(gòu)物車(chē)中找到的td for(var i = 0; i<col_1.length; i++) { if( col_1[i].innerText == name) { found = col_1[i]; break; } } if(found != null) { //商品名字存在 // 修改數(shù)量 found 是找到的td var tr = found.parentNode; var input = tr.querySelector('td:nth-child(5)>input:last-child'); console.log(input); jia(input); } else { //商品名字不存在 // 添加商品 var tr = document.createElement('tr'); var th = document.createElement('th'); th.innerHTML = ’<input type='checkbox' checked onclick='calculate()'>’; var td1 = document.createElement('td'); td1.innerText = spans[0].innerText; var td2 = document.createElement('td'); var img = document.createElement('img'); img.src = div.getElementsByTagName('img')[0].src; img.width = '100'; td2.appendChild(img); var td3 = document.createElement('td'); td3.innerText = spans[1].innerText; var td4 = document.createElement('td'); td4.innerHTML = ’<input type='button' value='-' onclick='jian(this)'><input type='number' value='1'><input type='button' value='+' onclick='jia(this)'>’; var td5 = document.createElement('td'); td5.innerHTML = ’<input type='button' value='移除' onclick='del(this)'>’; tr.appendChild(th); tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tr.appendChild(td4); tr.appendChild(td5); tbody.appendChild(tr); calculate(); } } </script></head><body> <!--這里寫(xiě)購(gòu)物車(chē)代碼--> <div> <table border='1' width='100%'> <thead> <tr> <th><input type='checkbox' onclick='check(this)'></th> <th>圖片</th> <th>名稱</th> <th>價(jià)格</th> <th>數(shù)量</th> <th>移除</th> </tr> </thead> <tbody id='tb'> <tr> <th><input type='checkbox' onclick='calculate()'></th> <td>商品1</td> <td><img src='http://www.hdgsjgj.cn/bcjs/images/5a0cf6bfN92a5a597.jpg' width='100'></td> <td>3000.00</td> <td> <input type='button' value='-' onclick='jian(this)'> <input type='number' value='1'> <input type='button' value='+' onclick='jia(this)'> </td> <td><input type='button' value='移除' onclick='del(this)'></td> </tr> <tr> <th><input type='checkbox' onclick='calculate()'></th> <td>商品2</td> <td><img src='http://www.hdgsjgj.cn/bcjs/images/5a0cf672N3c785b7a.jpg' width='100'></td> <td>2000.00</td> <td> <input type='button' value='-' onclick='jian(this)'> <input type='number' value='1'> <input type='button' value='+' onclick='jia(this)'> </td> <td><input type='button' value='移除' onclick='del(this)'></td> </tr> </tbody> <tfoot> <tr> <td colspan='6'>總價(jià)<span id='total'>0</span> 元</td> </tr> </tfoot> </table> </div> <!-- 商品列表 --> <div class='row'> <div class='col'> <p><span>商品1</span>價(jià)格:<span>3000.00</span></p> <img src='http://www.hdgsjgj.cn/bcjs/images/5a0cf6bfN92a5a597.jpg'> <input type='button' value='添加至購(gòu)物車(chē)' onclick='add(this)'> </div> <div class='col'> <p><span>商品2</span>價(jià)格:<span>2000.00</span></p> <img src='http://www.hdgsjgj.cn/bcjs/images/5a0cf672N3c785b7a.jpg'> <input type='button' value='添加至購(gòu)物車(chē)' onclick='add(this)'> </div> <div class='col'> <p><span>商品3</span>價(jià)格:<span>4000.00</span></p> <img src='http://www.hdgsjgj.cn/bcjs/images/5a1f5ed3Nfa577958.jpg'> <input type='button' value='添加至購(gòu)物車(chē)' onclick='add(this)'> </div> <div class='col'> <p><span>商品4</span>價(jià)格:<span>3500.00</span></p> <img src='http://www.hdgsjgj.cn/bcjs/images/5a1f5664Nfa934fac.jpg'> <input type='button' value='添加至購(gòu)物車(chē)' onclick='add(this)'> </div> </div></body></html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 陕西鹏展科技有限公司| 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 脉冲除尘器,除尘器厂家-淄博机械| 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 威客电竞(vk·game)·电子竞技赛事官网 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 礼堂椅厂家|佛山市艺典家具有限公司 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 |