技术文摘
JavaScript 实现简易购物车及添加商品功能的方法
JavaScript 实现简易购物车及添加商品功能的方法
在网页开发中,购物车功能是许多电商类或商品展示类网站的核心需求之一。通过 JavaScript 可以轻松实现一个简易购物车以及添加商品的功能。
搭建页面结构。HTML 部分创建一个商品列表区域和购物车展示区域。商品列表中的每个商品包含名称、价格和添加到购物车的按钮。购物车区域则用于显示已添加商品的信息以及总价。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简易购物车</title>
</head>
<body>
<div class="product-list">
<div class="product">
<h3>商品1</h3>
<p>价格:100元</p>
<button class="add-to-cart">添加到购物车</button>
</div>
<div class="product">
<h3>商品2</h3>
<p>价格:200元</p>
<button class="add-to-cart">添加到购物车</button>
</div>
</div>
<div class="cart">
<h2>购物车</h2>
<ul class="cart-items"></ul>
<p>总价:<span id="total-price">0</span>元</p>
</div>
<script src="script.js"></script>
</body>
</html>
接下来,使用 JavaScript 实现添加商品到购物车的逻辑。通过 document.querySelectorAll 方法获取所有的添加到购物车按钮,并为它们添加点击事件监听器。当按钮被点击时,获取商品的名称和价格,创建一个商品对象,并将其添加到购物车数组中。
const addToCartButtons = document.querySelectorAll('.add-to-cart');
const cartItemsList = document.querySelector('.cart-items');
const totalPriceElement = document.getElementById('total-price');
let cart = [];
addToCartButtons.forEach((button) => {
button.addEventListener('click', () => {
const productName = button.parentElement.querySelector('h3').textContent;
const productPrice = parseFloat(button.parentElement.querySelector('p').textContent.split(':')[1].replace('元', ''));
const product = { name: productName, price: productPrice };
cart.push(product);
updateCartDisplay();
});
});
function updateCartDisplay() {
cartItemsList.innerHTML = '';
let totalPrice = 0;
cart.forEach((item, index) => {
const listItem = document.createElement('li');
listItem.textContent = `${item.name} - ${item.price}元`;
cartItemsList.appendChild(listItem);
totalPrice += item.price;
});
totalPriceElement.textContent = totalPrice;
}
在上述代码中,updateCartDisplay 函数负责更新购物车的显示,遍历购物车数组,为每个商品创建一个列表项并添加到购物车展示区域,同时计算并更新总价。
通过以上步骤,利用 JavaScript 成功实现了一个简易购物车及添加商品的功能。这只是一个基础示例,实际应用中还可以进一步扩展,如实现删除商品、数量增减等功能,以满足更复杂的业务需求。
TAGS: 功能实现 JavaScript 简易购物车 添加商品功能
- div如何居中
- Sista AI的React AI ChatBot助力解锁智能对话
- TypeScript简介
- JavaScript函数式编程简介之Monoid、Applicatives与Lenses #8
- Cypress 自定义命令最佳实践详细指南
- 基于 MongoDB、Django、Celery 与 Sendgrid 搭建批量通知系统
- JavaScript中三元运算符ES6的短路情况
- 深入探索 CSS 盒模型:全面指南
- 探秘电波暗室:揭开无声的神秘面纱
- 设计模式之适配器模式
- 借助Vue Composition API构建可扩展且可维护的代码库
- TypeScript 字符串压缩编码历程
- 鲜为人知的 Javascript 功能,您可能从未用过
- Typescript编码纪事:计算除Self外数组元素的乘积
- TypeScript 编码历程:反转字符串中的单词