JavaScript编写一个简易购物车功能

yizhihongxing

实现一个简易购物车功能,需要以下步骤:

第一步:创建HTML页面

创建一个HTML页面,用于展示商品列表、购物车内容和总价。

<!DOCTYPE html>
<html>
  <head>
    <title>购物车</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>商品列表</h1>
    <ul id="item-list">
      <li>
        <span>商品A</span>
        <button class="add-to-cart" data-price="50">加入购物车</button>
      </li>
      <li>
        <span>商品B</span>
        <button class="add-to-cart" data-price="100">加入购物车</button>
      </li>
    </ul>
    <h1>购物车</h1>
    <ul id="cart-list"></ul>
    <p>总价:<span id="total-price">0</span>元</p>
    <script src="app.js"></script>
  </body>
</html>

第二步:编写JavaScript代码

在HTML页面中添加一个JavaScript文件的引用,并在该文件中实现购物车的逻辑。

首先,为加入购物车的按钮添加事件监听器,当按钮被点击时,将商品信息添加到购物车中。

const cart = [];

document.querySelectorAll('.add-to-cart').forEach(button => {
  button.addEventListener('click', event => {
    const price = Number(event.target.dataset.price);
    const item = {
      name: event.target.previousElementSibling.textContent,
      price: price
    };
    cart.push(item);
    renderCart();
  });
});

接着,实现购物车的渲染逻辑,将购物车中的商品展示出来,并计算总价。

function renderCart() {
  const cartListElement = document.getElementById('cart-list');
  const totalPriceElement = document.getElementById('total-price');
  cartListElement.innerHTML = '';
  let totalPrice = 0;
  cart.forEach(item => {
    const li = document.createElement('li');
    li.textContent = `${item.name}: ${item.price}元`;
    cartListElement.appendChild(li);
    totalPrice += item.price;
  });
  totalPriceElement.textContent = totalPrice;
}

示例说明1

假设我们要加入一件名为“商品C”的商品,价格为80元,那么在页面上添加如下代码:

<li>
  <span>商品C</span>
  <button class="add-to-cart" data-price="80">加入购物车</button>
</li>

这样,在用户点击“加入购物车”按钮时,该商品就会被添加到购物车中,并在购物车列表中展示。

示例说明2

假设用户希望删除购物车中的某个商品,我们可以为每个购物车项添加“删除”按钮,并在JavaScript代码中实现点击事件的处理函数。

cartListElement.addEventListener('click', event => {
  if (event.target.classList.contains('remove')) {
    const index = event.target.dataset.index;
    cart.splice(index, 1);
    renderCart();
  }
});

当用户点击“删除”按钮时,该商品将会从购物车中删除,并重新计算总价。同时,在购物车列表中也将该商品对应的项删除。

<li>
  商品C: 80元
  <button class="remove" data-index="0">删除</button>
</li>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript编写一个简易购物车功能 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 语义化的网页 XHTML语义化标记

    下面是对于“语义化的网页 XHTML语义化标记”的完整攻略: 什么是语义化的网页? 语义化的网页是指使用有意义、具有良好结构的HTML标记,以便于机器和人能够理解其中的内容。它能使页面结构更加清晰、易于维护,同时还能带来更好的SEO表现和更好的用户体验。 XHTML语义化标记的重要性 使用XHTML语义化标记能够提升页面的可读性和可访问性,对于搜索引擎爬虫更…

    css 2023年6月9日
    00
  • css border属性的使用方法和技巧

    CSS Border属性的使用方法和技巧 Border是什么 Border用于设置HTML元素的边框。Border由一个或多个值组成,分别设置边框的宽度、样式和颜色。可以通过CSS的Border属性来设置边框。 Border属性语法 CSS的Border属性语法如下: border: border-width border-style border-colo…

    css 2023年6月9日
    00
  • HTML5 canvas 基本语法

    下面是关于HTML5 canvas基本语法的攻略,希望对您有所帮助。 HTML5 canvas简介 HTML5中的canvas可以让我们通过JavaScript在网页上绘制二维图形。我们可以在canvas中画线、圆形、矩形、三角形等基本形状。此外,我们也可以在canvas中添加图片和文字,实现丰富的视觉效果。 HTML5 canvas基本语法 要使用canv…

    css 2023年6月10日
    00
  • 前端开发工程师和美工对于网站开发所掌握的知识的区别

    前端开发工程师和美工在网站开发中扮演的角色不同,因此他们所掌握的知识也有所区别。 前端开发工程师 岗位职责 前端开发工程师负责制作网站的前端页面效果,在网站前端开发过程中,需要掌握 HTML、CSS、JavaScript 等技术,能够开发响应式网站,并与后端工程师协作,实现网站的页面交互效果。 相关技能 HTML技能:熟悉基本的HTML5语法,并能够熟练使用…

    css 2023年6月10日
    00
  • 前端SVG样式颜色等开发注意事项

    前端SVG是一种使用XML描述二维图形的图像格式,其可以被浏览器直接渲染并显示在网页上。在进行前端SVG开发时,我们需要注意以下几个重要事项: 使用正确的SVG格式 虽然SVG可以使用多种文件格式保存(如.svg、.svgz、.css等),但在前端开发中,建议使用 .svg 格式,因为它能够被所有现代浏览器理解,且能够进行文本编辑。 处理SVG文件尺寸 在实…

    css 2023年6月9日
    00
  • VUE在线调用阿里Iconfont图标库的方法

    下面是详细讲解“VUE在线调用阿里Iconfont图标库的方法”的完整攻略。 步骤一:引入Iconfont资源 首先,在阿里Iconfont网站上,选中需要使用的图标,并将它们添加进自己的项目中; 点击右上角的下载按钮,选择下载方式为“Symbol”,获取Symbol所需的相关库文件; 在Vue项目中,创建一个新的CSS文件,并在其中引入样式库文件,例如: …

    css 2023年6月9日
    00
  • 利用label标签和CSS美化文件上传表单(不兼容IE6)

    下面我将详细讲解“利用label标签和CSS美化文件上传表单(不兼容IE6)”的完整攻略: HTML部分 首先,我们需要在HTML中定义一个文件上传表单,并使用label标签包裹住文件上传按钮。 示例代码: <form> <label for="file-upload" class="custom-file-u…

    css 2023年6月11日
    00
  • 使用CSS改变图片颜色的100种方法(值得收藏)

    该攻略主要介绍了使用 CSS 语法进行图片颜色修改的一百种方式,旨在帮助开发者们快速了解并掌握这些方法。 使用 CSS 改变图片颜色的 100 种方法 为了更好地阐述这些方法,我们先准备一张待处理的图片,该图片会在接下来的示例中被反复引用。下面是对该图片的描述和代码: 待处理图片 描述:一张黑色的背景,上面有一些紫色的图案。 代码: <img src=…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部