Avant-propos
Avec le développement progressif du e-commerce, le panier est devenu l'une des fonctions essentielles de tout site e-commerce. Cet article explique comment utiliser JavaScript pour implémenter un panier simple, y compris des fonctions de base telles que l'ajout de produits, la suppression de produits et la suppression du panier.
Structure HTML
Jetons d'abord un coup d'œil à la structure HTML de base de la page du panier. Ici, nous utilisons un tableau pour afficher les articles dans le panier et utilisons JavaScript pour générer dynamiquement des lignes de tableau.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>购物车示例</title> </head> <body> <h1>购物车</h1> <table id="cartTable"> <thead> <tr> <th>商品名称</th> <th>价格</th> <th>数量</th> <th>操作</th> </tr> </thead> <tbody> </tbody> <tfoot> <tr> <td colspan="4">总价:¥<span id="cartTotalPrice">0</span></td> </tr> </tfoot> </table> <p> <button id="clearCart">清空购物车</button> </p> <p> <label>商品名称:</label> <input type="text" id="productName"> <label>价格:</label> <input type="text" id="productPrice"> <label>数量:</label> <input type="text" id="productNumber"> <button id="addProduct">添加商品</button> </p> <script src="cart.js"></script> </body> </html>
Code JavaScript
Ensuite, nous écrivons du code JavaScript pour effectuer diverses opérations du panier. Nous définissons d'abord un constructeur Cart
pour représenter l'objet panier et ajoutons quelques méthodes courantes. L'implémentation spécifique est la suivante : Cart
构造函数来代表购物车对象,并添加一些常用方法。具体实现如下:
function Cart() { this.cartItems = []; // 存储购物车中的商品 this.totalPrice = 0; // 购物车中所有商品的总价 } // 清空购物车 Cart.prototype.clear = function() { this.cartItems = []; this.totalPrice = 0; }; // 添加商品到购物车中 Cart.prototype.addProduct = function(productName, productPrice, productNumber) { // 判断购物车中是否已经存在该商品 for (var i = 0; i < this.cartItems.length; i++) { if (this.cartItems[i].productName === productName) { this.cartItems[i].productNumber += productNumber; this.calculateTotalPrice(); return; } } // 如果购物车中不存在该商品,则将该商品添加到购物车中 var newCartItem = { productName: productName, productPrice: productPrice, productNumber: productNumber }; this.cartItems.push(newCartItem); this.calculateTotalPrice(); }; // 从购物车中移除指定商品 Cart.prototype.removeProduct = function(productName) { for (var i = 0; i < this.cartItems.length; i++) { if (this.cartItems[i].productName === productName) { this.cartItems.splice(i, 1); this.calculateTotalPrice(); return; } } }; // 计算购物车中所有商品的总价 Cart.prototype.calculateTotalPrice = function() { this.totalPrice = 0; for (var i = 0; i < this.cartItems.length; i++) { this.totalPrice += this.cartItems[i].productPrice * this.cartItems[i].productNumber; } };
接下来,我们编写一个函数 renderCart
function renderCart() { var cartTable = document.getElementById("cartTable"); var cartTbody = cartTable.getElementsByTagName("tbody")[0]; // 先清空表格 cartTbody.innerHTML = ""; for (var i = 0; i < cart.cartItems.length; i++) { var cartItem = cart.cartItems[i]; var productRow = document.createElement("tr"); var productNameCell = document.createElement("td"); var productNameText = document.createTextNode(cartItem.productName); productNameCell.appendChild(productNameText); productRow.appendChild(productNameCell); var productPriceCell = document.createElement("td"); var productPriceText = document.createTextNode(cartItem.productPrice); productPriceCell.appendChild(productPriceText); productRow.appendChild(productPriceCell); var productNumberCell = document.createElement("td"); var productNumberText = document.createTextNode(cartItem.productNumber); productNumberCell.appendChild(productNumberText); productRow.appendChild(productNumberCell); var removeProductCell = document.createElement("td"); var removeProductButton = document.createElement("button"); removeProductButton.innerHTML = "删除"; (function(index) { removeProductButton.addEventListener("click", function() { cart.removeProduct(cart.cartItems[index].productName); renderCart(); }); })(i); removeProductCell.appendChild(removeProductButton); productRow.appendChild(removeProductCell); cartTbody.appendChild(productRow); } // 更新总价 var cartTotalPrice = document.getElementById("cartTotalPrice"); cartTotalPrice.innerHTML = cart.totalPrice; }
renderCart
pour restituer les articles du panier actuel dans un tableau à afficher. L'implémentation spécifique est la suivante : var cart = new Cart(); window.onload = function() { var addProductButton = document.getElementById("addProduct"); addProductButton.addEventListener("click", function() { var productName = document.getElementById("productName").value; var productPrice = parseFloat(document.getElementById("productPrice").value); var productNumber = parseInt(document.getElementById("productNumber").value); if (productName && productPrice && productNumber) { cart.addProduct(productName, productPrice, productNumber); renderCart(); } else { alert("商品名称、价格和数量都不能为空!"); } }); var clearCartButton = document.getElementById("clearCart"); clearCartButton.addEventListener("click", function() { cart.clear(); renderCart(); }); renderCart(); };
rrreee
RésuméGrâce à l'implémentation du code JavaScript ci-dessus, nous avons réalisé avec succès une simple fonction de panier d'achat. Nous pouvons l'appliquer à divers sites Web de commerce électronique pour mettre en œuvre facilement la fonction d'achat du commerce électronique. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!