在JavaScript中实现购物车添加功能,通常涉及到以下几个基础概念:
localStorage
)来存储购物车中的商品信息。localStorage
可以在用户关闭浏览器后仍然保留购物车数据。以下是一个简单的客户端购物车添加功能的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>购物车示例</title>
</head>
<body>
<div id="product">
<h2>商品名称</h2>
<p>价格: ¥19.99</p>
<button id="add-to-cart">添加到购物车</button>
</div>
<ul id="cart"></ul>
<script>
// 获取元素
const addToCartButton = document.getElementById('add-to-cart');
const cartList = document.getElementById('cart');
// 购物车数组
let cart = JSON.parse(localStorage.getItem('cart')) || [];
// 添加到购物车函数
addToCartButton.addEventListener('click', function() {
const product = {
name: '商品名称',
price: 19.99
};
cart.push(product);
updateCartDisplay();
localStorage.setItem('cart', JSON.stringify(cart));
});
// 更新购物车显示
function updateCartDisplay() {
cartList.innerHTML = ''; // 清空列表
cart.forEach((item, index) => {
const li = document.createElement('li');
li.textContent = `${item.name} - ¥${item.price}`;
const removeButton = document.createElement('button');
removeButton.textContent = '移除';
removeButton.addEventListener('click', function() {
cart.splice(index, 1);
updateCartDisplay();
localStorage.setItem('cart', JSON.stringify(cart));
});
li.appendChild(removeButton);
cartList.appendChild(li);
});
}
// 初始化购物车显示
updateCartDisplay();
</script>
</body>
</html>
localStorage
的事件监听器来解决这个问题。对于数据不同步的问题,可以添加以下代码来监听localStorage
的变化:
window.addEventListener('storage', function(event) {
if (event.key === 'cart') {
cart = JSON.parse(event.newValue);
updateCartDisplay();
}
});
这段代码会在其他标签页修改localStorage
中的cart
项时触发,从而更新当前页面的购物车显示。
高校公开课
Elastic 实战工作坊
Elastic 实战工作坊
云+社区技术沙龙[第23期]
高校公开课
腾讯云GAME-TECH沙龙
云+社区开发者大会(苏州站)
云+社区技术沙龙[第29期]
云+社区技术沙龙[第26期]
视频云直播活动
云+社区技术沙龙[第28期]
云+社区技术沙龙[第22期]
领取专属 10元无门槛券
手把手带您无忧上云