购物车需HTML结构+原生JS交互实现增减、删除、总价计算;推荐用而非;localStorage应存含quantity的对象数组;数量和价格须用parseFloat转数字并校验。

用 HTML + 原生 JS 实现一个可交互的购物车界面
纯 HTML 写不了“能加减、算总价、删商品”的购物车——它需要响应用户操作,必须搭配 JavaScript。HTML 只负责结构和初始展示,JS 才是让购物车动起来的关键。
0
0
购物车需HTML结构+原生JS交互实现增减、删除、总价计算;推荐用而非;localStorage应存含quantity的对象数组;数量和价格须用parseFloat转数字并校验。

纯 HTML 写不了“能加减、算总价、删商品”的购物车——它需要响应用户操作,必须搭配 JavaScript。HTML 只负责结构和初始展示,JS 才是让购物车动起来的关键。
还是
?优先用
+ 。表格语义适合行列对齐的静态数据(比如价格表),而购物车每行有独立按钮、输入框、事件绑定,
更灵活、更易用 JS 动态增删项,CSS 也更好控制响应式。
常见错误:用 后发现 document.querySelector('tr[data-id="123"]') 容易因嵌套 或服务端渲染干扰失效;而 直接可靠。
- 每件商品用一个
- 数量用
,别用 (扩展性差)
- 删除按钮写成
,避免默认提交行为
localStorage 存购物车时,为什么刷新后数量变回 1?
因为很多人只存了商品 ID 列表(如 ["1001", "1002"]),没存数量。下次读取时,每个 ID 都被当成新加入,quantity 默认取 1。
立即学习“前端免费学习笔记(深入)”;
正确做法是存对象数组:
Shopxp购物系统Html版
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
下载
JSON.stringify([
{ id: "1001", quantity: 2, price: 29.9 },
{ id: "1002", quantity: 1, price: 199.0 }
])读取后要遍历渲染,不能直接 innerHTML 拼接字符串——否则事件监听器丢失,加减按钮点不动。
- 写入前用
JSON.stringify(),读取后必须 JSON.parse()
- 每次修改数量,先从
localStorage 读出整个数组,更新对应 id 的 quantity,再整体写回
- 注意浮点数精度:
(29.9 * 2).toFixed(2) 比直接 29.9 * 2 更稳妥
总价计算总不准,parseFloat 和 parseInt 该用哪个?
用 parseFloat。价格是小数,parseInt("29.99") 会截断成 29,直接少钱。
但更要命的是:DOM 里取值是字符串,比如 input.value 是 "2",不转就变成 "29.9" + "2" === "29.92"(字符串拼接)。
- 数量必须转数字:
const qty = parseFloat(input.value) || 1(|| 1 防空值)
- 单价建议在 DOM 上用
data-price="29.90" 存原始值,不用从文本节点里 parse
- 总价累计用
total += qty * parseFloat(item.dataset.price),别用 innerHTML 里的文字
容易被忽略的一点:用户手动在数量框里输入 "2.5" 或 "-1",min="1" 属性只是提示,实际仍可绕过——得在 JS 里校验并重置。
相关文章
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。
543
2023.08.23
操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。
317
2023.10.13
const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。
541
2023.09.20
js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。
488
2023.08.03
js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。
214
2023.09.04
java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。
1547
2023.10.24
本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。
1
2026.02.11
热门下载
精品课程
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号