JavaScript 实现购物车数量增减与总价计算逻辑
作者:交互手记时间:2026-10-24 14:24:14浏览:97
本文详解使用原生 JavaScript 实现购物车核心功能,包括商品数量增减按钮交互、单件商品价格动态计算以及总价实时汇总。代码采用基础 DOM 操作方式,保留两位小数,适合初学者理解前端交互与数值处理逻辑。
购物车功能概述与HTML结构
本文通过具体代码示例,展示如何使用 JavaScript 实现购物车的数量增减及价格计算功能,供读者参考学习。
核心功能涵盖购物车商品数量的加减操作、单件商品价格的实时运算以及订单总价格的汇总计算,所有金额数值均保留两位小数。

<div class="content">
<div class="logo">
<img src="images/dd_logo.jpg"><span onclick="guan()">关闭</span>
</div>
<div class="cartList" id="zong">
<ul>
<li >¥21.90</li>
<li><input type="button" name="minus" value="-" onclick="jian()"><input type="text" name="amount" value="1" id="shang"><input type="button" name="plus" value="+" onclick="jia()"></li>
<li>¥<input type="text" name="price" value="21.90" id="yiqian"></li>
<li><p onclick="shou()">移入收藏</p><p onclick="shan()">删除</p></li>
</ul>
<ul>
<li >¥24.00</li>
<li><input type="button" name="minus" value="-" onclick="jian1()"><input type="text" name="amount" value="1" id="shang1"><input type="button" name="plus" value="+" onclick="jia1()"></li>
<li>¥<input type="text" name="price" value="24.00"id="erqian" ></li>
<li><p onclick="shan()">移入收藏</p><p onclick="shan()">删除</p></li>
</ul>
<ol>
<li id="totalPrice" > 0.00</li>
<li><span onclick="jie()">结 算</span></li>
</ol>
</div>
<h3 id="shijian">现在是:</h3>
</div>
上述部分为 HTML 页面结构代码。
接下来是具体的 JavaScript 脚本实现部分。
JavaScript 核心逻辑实现
var price = 0.00;
var price1 = 0.00;
var price2 = 0.00;
function jian() {
var i = parseInt(document.getElementById("shang").valueOf().value) - 1;
if (i <= 0) {
i = 0;
}
document.getElementById("shang").valueOf().value = i;
price1 = 21.90 * i;
document.getElementById("yiqian").value=suan(price1);
zong();
}
function jia() {
var i = parseInt(document.getElementById("shang").valueOf().value) + 1;
document.getElementById("shang").valueOf().value = i;
price1 = 21.90 * i;
document.getElementById("yiqian").value=suan(price1);
zong();
}
function jian1() {
var i = parseInt(document.getElementById("shang1").valueOf().value) - 1;
if (i <= 0) {
i = 0;
}
document.getElementById("shang1").valueOf().value = i;
price2 = 24.00 * i;
document.getElementById("erqian").value=suan(price2);
zong();
}
function jia1() {
var i = parseInt(document.getElementById("shang1").valueOf().value) + 1;
document.getElementById("shang1").valueOf().value = i;
price2 = 24.00 * i;
document.getElementById("erqian").value=suan(price2);
zong();
}
function suan(number) {
price = price1 + price2;
if (isNaN(number)) {
return false;
}
number = Math.round(number * 100) / 100;
var s = number.toString();
var rs = s.indexOf(".");
if (rs < 0) {
rs = s.length;
s += ".";
}
while (s.length <= rs + 2) {
s += "0";
}
return s;
}
function zong() {
price = price1 + price2;
if (isNaN(price)) {
return false;
}
price = Math.round(price * 100) / 100;
var s = price.toString();
var rs = s.indexOf(".");
if (rs < 0) {
rs = s.length;
s += ".";
}
while (s.length <= rs + 2) {
s += "0";
}
document.getElementById("totalPrice").innerHTML=s;
}
该实现采用最基础的开发方式,旨在降低理解门槛,即使前端知识基础薄弱的初学者也能轻松掌握相关知识点。
以上内容即为本文的全部分享,希望能为读者的学习带来帮助,同时也欢迎大家继续支持本站。
作者最新文章
JS怎么实现页面强制刷新
2026-11-05 14:53:38
点击JS链接直接运行不下载?前端实现.js文件强制下载的三种方法
2026-11-05 12:12:23
怎么封装一个通用的JS创建元素辅助函数
2026-11-05 11:41:41
Swiper.js 怎么监听滑动结束并获取当前索引
2026-11-05 10:57:15
HTML、CSS和JS的关系:Web前端三件套怎么协作
2026-11-04 15:41:40
