javascript写一个购物车页面
时间: 2023-12-17 16:03:36 浏览: 25
以下是一个简单的购物车页面的HTML和JavaScript代码示例:
HTML代码:
```
<!DOCTYPE html>
<html>
<head>
<title>购物车页面</title>
</head>
<body>
<h1>购物车</h1>
<div>
<h2>商品列表</h2>
<ul id="product-list"></ul>
</div>
<div>
<h2>购物车</h2>
<ul id="cart"></ul>
<p>总价: <span id="total-price">0</span> 元</p>
<button onclick="checkout()">结算</button>
</div>
<script src="shopping-cart.js"></script>
</body>
</html>
```
JavaScript代码:
```
// 商品列表
const products = [
{name: "商品1", price: 10},
{name: "商品2", price: 20},
{name: "商品3", price: 30},
{name: "商品4", price: 40},
{name: "商品5", price: 50},
];
// 购物车
const cart = [];
// 获取商品列表元素
const productList = document.getElementById("product-list");
// 获取购物车元素
const cartList = document.getElementById("cart");
// 获取总价元素
const totalPrice = document.getElementById("total-price");
// 渲染商品列表
products.forEach(product => {
const item = document.createElement("li");
item.innerHTML = `
<span>${product.name}</span>
<span>${product.price}元</span>
<button onclick="addToCart(${product.price})">加入购物车</button>
`;
productList.appendChild(item);
});
// 渲染购物车
function renderCart() {
cartList.innerHTML = "";
cart.forEach(item => {
const li = document.createElement("li");
li.innerHTML = `
<span>${item.name}</span>
<span>${item.price}元</span>
<button onclick="removeFromCart(${item.price})">删除</button>
`;
cartList.appendChild(li);
});
totalPrice.innerHTML = getTotalPrice();
}
// 计算总价
function getTotalPrice() {
return cart.reduce((total, item) => total + item.price, 0);
}
// 添加商品到购物车
function addToCart(price) {
const product = products.find(p => p.price === price);
if (product) {
cart.push(product);
renderCart();
}
}
// 从购物车中删除商品
function removeFromCart(price) {
const index = cart.findIndex(item => item.price === price);
if (index !== -1) {
cart.splice(index, 1);
renderCart();
}
}
// 结算
function checkout() {
alert(`总价: ${getTotalPrice()}元`);
}
```
说明:
1. `products`数组保存商品列表,每个商品包含名称和价格两个属性。
2. `cart`数组保存购物车中的商品。
3. 使用`forEach`方法将商品列表渲染到页面上,每个商品都包含名称、价格和“加入购物车”按钮。
4. `addToCart`函数将商品添加到购物车中,如果购物车中已经存在该商品,则不会重复添加。
5. `removeFromCart`函数从购物车中删除商品。
6. `getTotalPrice`函数计算购物车中商品的总价。
7. `renderCart`函数渲染购物车中的商品列表和总价。
8. 点击“加入购物车”按钮或“删除”按钮会触发相应的函数。
9. 点击“结算”按钮会弹出总价的提示框。