jquery实现商品sku多属性选择功能(商品详情页)

为了实现商品sku多属性选择功能,我们可以采用以下步骤:

1.准备工作

在html代码中,需要添加一些标签和属性,包括商品属性选择区域的class,属性选项的class和data-属性等信息。

jquery代码中,需要定义商品属性数据、价格数据等,以及选择商品属性时的事件响应函数。

2.实现选择商品属性的功能

在jquery代码中,需要实现选择商品属性时的事件响应函数,更新价格、库存等信息。具体实现方式可以采用两种方法:

(1)通过遍历所有属性选项,判断哪些属性选项被选中,然后更新价格、库存等信息。

$('.sku-group-item ul li').on('click', function() {
  $(this).addClass('selected').siblings().removeClass('selected');
  var selected = $('.sku-group-item').find('li.selected');
  var sku = '';
  selected.each(function() {
    sku += $(this).data('attr') + '|';
  });
  sku = sku.slice(0, -1);

  //更新价格等信息
  var price = goods[sku]['price'];
  var stock = goods[sku]['stock'];
  $('.sku-price').html(price);
  $('.sku-stock em').html(stock);
});

(2)将所有属性选项的点击事件委托给他们的父元素,通过父元素的事件响应函数判断选中的属性选项,然后更新价格、库存等信息。

$('.sku-group-item').on('click', 'li', function() {
  $(this).addClass('selected').siblings().removeClass('selected');
  var selected = $('.sku-group-item').find('li.selected');
  var sku = '';
  selected.each(function() {
    sku += $(this).data('attr') + '|';
  });
  sku = sku.slice(0, -1);

  //更新价格等信息
  var price = goods[sku]['price'];
  var stock = goods[sku]['stock'];
  $('.sku-price').html(price);
  $('.sku-stock em').html(stock);
});

3.完整示例说明

(1)html代码

<div class="sku-group-item">
  <div class="sku-group-title">颜色:</div>
  <ul>
    <li data-attr="{&quot;color&quot;:&quot;red&quot;}">红色</li>
    <li data-attr="{&quot;color&quot;:&quot;blue&quot;}">蓝色</li>
  </ul>
</div>
<div class="sku-group-item">
  <div class="sku-group-title">尺码:</div>
  <ul>
    <li data-attr="{&quot;size&quot;:&quot;S&quot;}">S</li>
    <li data-attr="{&quot;size&quot;:&quot;M&quot;}">M</li>
    <li data-attr="{&quot;size&quot;:&quot;L&quot;}">L</li>
  </ul>
</div>
<div class="sku-price">0</div>
<div class="sku-stock">库存:<em>0</em></div>

(2)jquery代码

var goods = {
  "red|S": {
    "price": "100",
    "stock": "10"
  },
  "red|M": {
    "price": "120",
    "stock": "20"
  },
  "red|L": {
    "price": "150",
    "stock": "30"
  },
  "blue|S": {
    "price": "80",
    "stock": "5"
  },
  "blue|M": {
    "price": "90",
    "stock": "10"
  },
  "blue|L": {
    "price": "100",
    "stock": "15"
  }
}

$('.sku-group-item').on('click', 'li', function() {
  $(this).addClass('selected').siblings().removeClass('selected');
  var selected = $('.sku-group-item').find('li.selected');
  var sku = '';
  selected.each(function() {
    sku += $(this).data('attr') + '|';
  });
  sku = sku.slice(0, -1);

  //更新价格等信息
  var price = goods[sku]['price'];
  var stock = goods[sku]['stock'];
  $('.sku-price').html(price);
  $('.sku-stock em').html(stock);
});

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery实现商品sku多属性选择功能(商品详情页) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 解决jquery1.9不支持browser对象的问题

    解决jQuery1.9不支持browser对象的问题: jQuery1.9从jQuery库中删除了$.browser对象。如果你使用的代码依赖于$.browser对象,则需要找到另一种方法来解决这个问题。在下面的攻略中,我将介绍两种方法来解决此问题。 方法一:使用jQuery1.8版本 如果您的代码中依赖于$.browser对象,则可以使用jQuery1.8…

    jquery 2023年5月28日
    00
  • jQWidgets jqxNavigationBar expandAt()方法

    以下是关于 jQWidgets jqxNavigationBar 组件中 expandAt() 方法的详细攻略。 jQWidgets jqxNavigationBar expandAt() 方法 jQWidgets jqxNavigationBar 的 expandAt() 方法用于展开导航栏中指定位置的项。 语法 // 展开导航栏中指定位置的项 $(‘#n…

    jquery 2023年5月12日
    00
  • jQuery中$.ajax()方法的具体使用

    当使用jQuery来开发一个前端网站时,我们必须经常和后端进行数据交互。而其中最常用的就是通过AJAX技术来向后端发起异步请求。在jQuery中,我们可以使用$.ajax()方法来执行异步HTTP请求。本文将详细讲解$.ajax()方法的具体使用。 $.ajax()方法的参数说明 首先,我们来看一下$.ajax()方法的格式: $.ajax({ url: ‘…

    jquery 2023年5月27日
    00
  • jQWidgets jqxButtonGroup disableAt()方法

    jQWidgets jqxButtonGroup disableAt()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包jqxButton是其中之一。本文将详细介绍jqxButtonGroup的disableAt()方法,包括定义、语法和示例。 disableAt()方法的定义 jqxButtonGroup的disab…

    jquery 2023年5月10日
    00
  • jQWidgets jqxLayout height属性

    jQWidgets jqxLayout height属性攻略 简介 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了丰富的 UI 组件和工具,可于创建现代化应用程序。 jqxLayout 布局组件用于创建灵活的布局,可用于构建复杂用户界面。本攻略将详细介绍 jqxLayout 的 height 属性,包括 height 属性的使用方法和…

    jquery 2023年5月10日
    00
  • jQWidgets jqxGrid pagerheight属性

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxGrid,它是一个用于创建网格的控件。jqxGrid 组件提供多个属性,其中之一是 pagerheight 属性。下面是关于 jqxGrid 的 pagerheight 属性的详细攻略: pagerheight 属性概述 pagerheig…

    jquery 2023年5月11日
    00
  • jquery 显示*天*时*分*秒实现时间计时器

    当需要在网页中实现时间计时器的功能时,可以使用jQuery中的函数来实现获取时间并进行处理。以下是使用jQuery实现“显示天时分秒”的时间倒计时器的步骤: 步骤 1. 获取当前时间戳 首先,需要获取当前时间戳,可以使用 Date.now() 或者 new Date().getTime() 来获取当前时间戳。 var currentTime = Date.n…

    jquery 2023年5月28日
    00
  • jQuery样式操作方法整理介绍

    关于“jQuery样式操作方法整理介绍”的攻略,我将从以下三个方面进行介绍: jQuery操作样式的基本方法和语法 jQuery样式操作方法的分类介绍 示例说明 1. jQuery操作样式的基本方法和语法 jQuery操作样式的一般语法为: $(selector).css(property,value); 其中,selector表示选择器,可以是元素名、类名…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部