JavaScript 购物车的实现通常涉及以下几个基础概念:
以下是一个简单的购物车实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>购物车示例</title>
</head>
<body>
<h1>商品列表</h1>
<ul id="product-list">
<li>
<span>商品A - ¥100</span>
<button onclick="addToCart('商品A', 100)">添加到购物车</button>
</li>
<li>
<span>商品B - ¥200</span>
<button onclick="addToCart('商品B', 200)">添加到购物车</button>
</li>
</ul>
<h1>购物车</h1>
<ul id="cart"></ul>
<p>总价: ¥<span id="total-price">0</span></p>
<script>
let cart = JSON.parse(localStorage.getItem('cart')) || [];
function renderCart() {
const cartElement = document.getElementById('cart');
cartElement.innerHTML = '';
let totalPrice = 0;
cart.forEach(item => {
const li = document.createElement('li');
li.textContent = `${item.name} - ¥${item.price} x ${item.quantity}`;
const removeButton = document.createElement('button');
removeButton.textContent = '移除';
removeButton.onclick = () => removeFromCart(item.name);
li.appendChild(removeButton);
cartElement.appendChild(li);
totalPrice += item.price * item.quantity;
});
document.getElementById('total-price').textContent = totalPrice;
}
function addToCart(name, price) {
const item = cart.find(i => i.name === name);
if (item) {
item.quantity++;
} else {
cart.push({ name, price, quantity: 1 });
}
localStorage.setItem('cart', JSON.stringify(cart));
renderCart();
}
function removeFromCart(name) {
cart = cart.filter(item => item.name !== name);
localStorage.setItem('cart', JSON.stringify(cart));
renderCart();
}
renderCart();
</script>
</body>
</html>
LocalStorage
可以在页面刷新后仍然保留购物车数据。storage
事件来解决。LocalStorage
。可以通过特性检测并提供降级方案来处理。通过上述方法,可以实现一个基本的 JavaScript 购物车,并根据具体需求进行进一步的优化和扩展。
领取专属 10元无门槛券
手把手带您无忧上云