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日

相关文章

  • JQuery中serialize() 序列化

    当我们需要将表单中的数据转换为可供AJAX或POST提交的字符串时,可以使用jQuery中的serialize()函数。serialize()函数将表单元素的值序列化(转换)后,返回一个字符串。 以下是”JQuery中serialize() 序列化”的完整攻略: 什么是序列化? 序列化是将对象的状态转换为可存储或可传输格式的过程。在浏览器环境中,我们可以使用…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDocking disable()方法

    以下是关于“jQWidgets jqxDocking disable()方法”的完整攻略,包含两个示例说明: 方法简介 disable()是 jQWidgets jqxDocking 控件的一个方法,用于禁用控件。该的语法如下: $("#jqxDocking").jqxDocking(‘disable’); 在上述语法中,#jqxDock…

    jquery 2023年5月10日
    00
  • jQWidgets jqxNavigationBar animationType属性

    以下是关于 jQWidgets jqxNavigationBar 组件中 animationType 属性的详细攻略。 jQWidgets jqxNavigationBar animationType 属性 jQWidgets jqxNavigationBar 组件的 animationType 属性用设置导航栏的动画类型。 语法 $(‘#navBar’).…

    jquery 2023年5月12日
    00
  • jQWidgets jqxListBox bindingComplete事件

    jQWidgets jqxListBox bindingComplete事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中一,本文将详细介绍jqxListBox的bindingComplete事件,包括定义、语法和示例。 bindingComplete事件定义 jqxListBox的bindi…

    jquery 2023年5月10日
    00
  • jquery获得option的值和对option进行操作

    jQuery获得option的值和对option进行操作 在使用jQuery的时候,经常需要获取select标签的option的值,或者对option进行操作(比如动态添加、删除等),本文将提供一些jquery获取option值和对option进行操作的方法。 获取option的值 获取当前被选中的option的值 使用$(‘select’).val()可以…

    jquery 2023年5月28日
    00
  • jQWidgets jqxMaskedInput textAlign 属性

    jQWidgets jqxMaskedInput textAlign 属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxMaskedInput是其中之一。本文将详细介绍jqxMaskedInput的textAlign属性,包括用法、语法和示例。 textAlign属性的语法 jqxMaskedInput的text…

    jquery 2023年5月10日
    00
  • jQWidgets jqxNavigationBar getContentAt()方法

    以下是关于 jQWidgets jqxNavigationBar 组件中 getContentAt() 方法的详细攻略。 jQWidgets jqxNavigationBar getContentAt() 方法 jQWidgets jqxNavigationBar 的 getContentAt() 方法用于获取指定索引位置的导航栏项的内容。 语法 // 获取…

    jquery 2023年5月12日
    00
  • jQWidgets jqxScheduler contextMenuCreate事件

    jQWidgets jqxScheduler contextMenuCreate事件是在jqxScheduler插件中使用的,它在上下文菜单创建时触发,可以用于在上下文菜单中添加自定义菜单项或改变默认的菜单项。 该事件有两个参数:第一个参数是contextMenu(表示上下文菜单),第二个参数是当鼠标右键点击了某个日程条目后返回的对象(这个对象包含该日程条目…

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