js中的DOM模拟购物车功能
发布时间 - 2026-01-11 00:18:13 点击率:次效果图:
代码如下:
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta charset="utf-8">
<style>
table{
border:1px solid #000;
border-collapse:collapse;
width:600px;
}
td{
border:1px solid #000;
text-align:center;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<td>名称</td>
<td>单价</td>
<td>数量</td>
<td>小计</td>
</tr>
</thead>
<tbody id="tbody">
<tr>
<td>iphone6</td>
<td>4488</td>
<td>
<button onclick="btnClick(this)">-</button>
<span>1</span>
<button onclick="btnClick(this)">+</button>
</td>
<td>4488</td>
</tr>
<tr>
<td>iphone6</td>
<td>5288</td>
<td>
<button onclick="btnClick(this)">-</button>
<span>1</span>
<button onclick="btnClick(this)">+</button>
</td>
<td>5288</td>
</tr>
<tr>
<td>iphone6</td>
<td>4288</td>
<td>
<button onclick="btnClick(this)">-</button>
<span>1</span>
<button onclick="btnClick(this)">+</button>
</td>
<td>4288</td>
</tr>
</tbody>
<tfoot>
<td colspan="3" align="right">总计:</td>
<td id="all_total"></td>
</tfoot>
</table>
<script>
function btnClick(btn){
//声明 spanValue 变量,用于保存 span中的数据
var spanValue;
//1、更改 span 中的数据
//1.1 判断 btn 是+还是-
if(btn.textContent == "+"){
//1.2 根据 btn 找到 span
var span=btn.previousElementSibling;
//1.3 获取 span里的数据
spanValue=parseInt(span.textContent);
//1.4 更新 span中的数据
spanValue+=1;
span.textContent=spanValue;
}else{
//减法操作
var span = btn.nextElementSibling;
//1.3 获取 span里的数据
spanValue=parseInt(span.textContent);
//1.4 更新 span中的数据
if(spanValue > 1){
spanValue-=1;
span.textContent=spanValue;
}
}
//2.计算 小计
//2.1 先 获取 单价 元素(tdPrice)
var tdPrice=btn.parentNode.previousElementSibling;
//2.2 获取 单价 元素中的 数值(price)
var price=parseInt(tdPrice.textContent);
//2.3 计算小计(spanValue*price),保存在 total
var total=price*spanValue;
//2.4 获取 小计 元素(tdTotal)
var tdTotal=btn.parentNode.nextElementSibling;
//2.5 将 total 的值 赋值给 tdTotal元素
tdTotal.textContent=total;
//调用 计算总计 的函数
calAllTotal();
}
/**
* 计算总计
*/
function calAllTotal(){
//1、获取 id为tbody 中的所有tr
var tbody = document.getElementById("tbody");
var trs=tbody.getElementsByTagName("tr");
console.log(trs);
//2、循环遍历所有tr,找到每个tr的最后一个td
var all_total=0;
for(var i=0;i<trs.length;i++){
var tr=trs[i];
//3、累加 每个 td 的值 计算总计
//3.1 获取 tr 中的 最后一个td
var lastTd=tr.lastElementChild;
var lastTdValue=parseInt(lastTd.textContent);
all_total += lastTdValue;
}
//4、赋值
document.getElementById("all_total").textContent=all_total;
}
//加载时调用 calAllTotal() 计算现有的总计
calAllTotal();
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js购物车功能
# js
# 模拟购物车
# js实现购物车的功能
# js购物车实现思路及代码(个人感觉不错)
# Javascript操纵Cookie实现购物车程序
# 简单的前端js+ajax 购物车框架(入门篇)
# js实现简单的购物车有图有代码
# 原生js模拟淘宝购物车项目实战
# JavaScript编写一个简易购物车功能
# 基于Vuejs实现购物车功能
# 利用Angularjs和bootstrap实现购物车功能
# js+cookies实现悬浮购物车的方法
# 小计
# 遍历
# 加载
# td
# body
# border
# width
# solid
# px
# collapse
# thead
# onclick
# button
# span
# btnClick
# tbody
# tr
# id
# class
# pre
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
百度浏览器如何管理插件 百度浏览器插件管理方法
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
phpredis提高消息队列的实时性方法(推荐)
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
南京网站制作费用,南京远驱官方网站?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
linux写shell需要注意的问题(必看)
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
音响网站制作视频教程,隆霸音响官方网站?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
详解Android图表 MPAndroidChart折线图
Java遍历集合的三种方式
大同网页,大同瑞慈医院官网?
EditPlus中的正则表达式实战(5)
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何快速搭建高效简练网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
创业网站制作流程,创业网站可靠吗?
Laravel如何创建自定义Facades?(详细步骤)
如何有效防御Web建站篡改攻击?
简单实现Android验证码
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
LinuxShell函数封装方法_脚本复用设计思路【教程】
详解Huffman编码算法之Java实现
北京专业网站制作设计师招聘,北京白云观官方网站?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
,网页ppt怎么弄成自己的ppt?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
高防服务器:AI智能防御DDoS攻击与数据安全保障
西安专业网站制作公司有哪些,陕西省建行官方网站?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel怎么使用artisan命令缓存配置和视图
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
香港服务器部署网站为何提示未备案?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何快速打造个性化非模板自助建站?
Laravel如何使用Vite进行前端资源打包?(配置示例)
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何用免费手机建站系统零基础打造专业网站?
html5的keygen标签为什么废弃_替代方案说明【解答】
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在建站之星绑定自定义域名?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】

