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

article/2025/10/3 8:10:37

SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。

SKU是用来定价和管理库存的,比如一个产品有很多颜色,很多配置,每个颜色和配置的组合都会形成新的产品,这时就产生很多SKU,sku在传统线下行业也是一个非常常用的概念,尤其是服装行业,同款不同尺码不同色都是独立的SKU,需要有独立的条形码,独立的库存管理等。

实现效果

04637b26dd5d4c36267d5e23fce15514.png

源码

商品SKU选择DEMO3

ul,li{ padding:0px; margin:0px;}

#panel{ width:500px; margin:30px auto;}

.goods_attr{ overflow:hidden;}

.goods_attr .label {font: 12px/30px '宋体';color: #777;width: 50px;;padding-right: 10px;float: left; display:block;}

.goods_attr ul {float:left;width:300px;}

.goods_attr li{color:#333;overflow:hidden;position:relative;float:left;text-align:center; vertical-align:middle; border:1px solid #999;text-indent:0; cursor:pointer}

.goods_attr li.b{border:1px dotted #CCC;color:#DDD; pointer:none;}

.goods_attr li.b img {opacity:0.4;}

.goods_attr li.sel{ border:1px solid #c80a28;color:#333;}

.goods_attr li.text{margin:5px 10px 5px 0; height:23px;line-height:23px;text-indent:0;padding:0 23px;font-style:normal;}

.goods_attr li.img{ margin-right:10px;width:35px;height:35px; line-height:35px;text-align:center;}

var keys = {

'attr1':['10','11','12'],

'attr2':['20','21','22','23'],

'attr3':['30','31','32'],

'attr4':['40','41']

};

//SKU,Stock Keeping Uint(库存量单位)

var sku_list=[

{'attrs':'10|20|30|40','num':120},

{'attrs':'10|21|30|40','num':10},

{'attrs':'10|22|30|40','num':28},

{'attrs':'10|22|31|41','num':220},

{'attrs':'10|22|32|40','num':130},

{'attrs':'11|23|32|41','num':120},

{'attrs':'11|22|32|41','num':120},

{'attrs':'11|22|31|41','num':120},

{'attrs':'11|22|31|40','num':120},

{'attrs':'12|22|31|40','num':120},

];

//显示html结构

function show_attr_item(){

var html='';

//k是下标,跟php不同

for(k in keys){

html+='

'+k+'';

html+='

  • '

for(k2 in keys[k]){

_attr_id=keys[k][k2];

html+='

';

html+=''+_attr_id+'';

html+='';

html+='

'

}

html+='

';

html+='

';

}

$('#panel_sel').html(html);

}

//显示数据

function show_data(sku_list){

var str="";

for( k in sku_list){

str+=sku_list[k]['attrs']+"\t"+sku_list[k]['num']+"\n";

}

$('#panel_sku_list pre').html(str);

}

show_data(sku_list);

show_attr_item();

//返回对象中的一个数组,有attr属性

function filterProduct(ids){

var result=[];

$(sku_list).each(function(k,v){

_attr='|'+v['attrs']+'|';

_all_ids_in=true;

for( k in ids){

if(_attr.indexOf('|'+ids[k]+'|')==-1){

_all_ids_in=false;

break;

}

}

//把数组中的id所在那行的所有元素都压入result。最后返回

if(_all_ids_in){

result.push(v);

}

});

return result;

}

function filterAttrs(ids){

var products=filterProduct(ids);

//console.log(products);

var result=[];

$(products).each(function(k,v){

//括号内的还是返回一个数组,concat函数是拼接一个或多个函数。

result=result.concat(v['attrs'].split('|'));

});

return result;

}

//已选择的节点数组

function _getSelAttrId(){

var list=[];

$('.goods_attr li.sel').each(function(){

list.push($(this).attr('val'));

});

return list;

}

//注册点击事件

$('.goods_attr li').click(function(){

if($(this).hasClass('b')){

return ;//被锁定了

}

if($(this).hasClass('sel')){

$(this).removeClass('sel');

}else{

$(this).siblings().removeClass('sel');

$(this).addClass('sel');

}

var select_ids=_getSelAttrId();

// console.log(select_ids);

已经选择了的规格

var ids=filterAttrs(select_ids);

//如果id不在已选id所在行组成的数组中,则然他禁止点击

$('#panel_sel').find('li').each(function(k2,li2){

if($.inArray($(li2).attr('val'),ids)==-1){

$(li2).addClass('b');

}else{

$(li2).removeClass('b');

}

});

});

部分截图展示说明,一个div放置数据,一个放置效果。模拟后台,结构是根据jquery语法动态展示的。

ec63246c5d5c6b30e36487a09f5be213.png

一些jquery语法解释

key是对应动态展示的效果,可以扩展属性值。sku_list是存在的属性组合。

存在的是指,在这里是有attr1,attr2,attr3,attr4(相当于颜色,尺寸,内存,型号)这4种规格,里面有2x4x3x2=48种组合,而实际上售卖的组合只有9种,就是sku__list列出来的。

b06f221978be7e7ca05b7d5f5a20bc4d.png

一些函数说明

这2个函数是动态展示数据和结构,依据是上面图中的2个数组。keys和sku_list

b28945661e4e0ad5f350f974b0402bb2.png

0c0b4465068ee3328e82b9e4fe6a8e34.png

总结

以上所述是小编给大家介绍的jquery实现商品sku多属性选择功能(商品详情页),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


http://chatgpt.dhexx.cn/article/62Q7MSN7.shtml

相关文章

商品sku 和批量编辑 js算法

这一段时间在搞商品后台的系统&#xff0c;其中关于通过商品的销售属性&#xff0c;生成SKU的处理&#xff0c;这里说明一下。 /*** 生成笛卡尔积* returns {*}*/ function descartes(array){if( array.length < 2 ) return array[0] || [];return [].reduce.call(array, fu…

laravel-admin 结合搭配商品sku

本文章基于jade 的基础上&#xff0c;完善部分功能。多谢jade提供sku方案 多个规格名&#xff0c;只显示2个添加规则值&#xff0c;保留已有的信息保存数据库后&#xff0c;json数据会自动排序 (2020-09-21 新增) Form 扩展 – 商品Sku 1.安装&#xff1a; composer requi…

商品SKU系统

如何设计库存&#xff0c;哪些库存呢&#xff1f;分类属性的库存&#xff1a;不同颜色 不同尺码的属性的库存 &#xff0c;这些就体现了商品的SKU&#xff0c;至于什么是SKU&#xff0c;自己去百度一下哈&#xff0c;所以首先我们就要设计商品Sku表以及关系表了 总体思路 1.…

java实现商品sku_商品SKU功能设计与优化

SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/… 摘要 原来的商品SKU设计存在着两个问题,一个是SKU表设计上面比较固化,无法扩展。另一个是当修改了商品信息之后,商品SKU的ID会发生变化,由于购物车表和订单商品表都关联了商品SKU的ID,这样就会导致匹…

sku mysql_商品sku处理

简单来说&#xff0c;一个电商类网站&#xff0c;根据平台的不同&#xff0c;商品的属性自然也就不同。 一般情况来说&#xff0c;一个商品 goods_id 对应多个 sku_id ; 设计表时我们会采取这样的方式&#xff1a; 产品表  ---   产品sku表  ---  产品基本属性表(产品属…

一个商品SKU是怎么生成的

首先说一说什么是SKU。。。。。。。自己百度去。。。 类似京东上面&#xff0c;未来人类S5这个台笔记本&#xff08;没错&#xff0c;我刚入手了&#xff09; 都是S5这个型号&#xff0c;但是因为CPU,显卡&#xff0c;内存&#xff0c;硬盘等不同&#xff0c;价格也不一样。CPU…

商品SKU

前言 最近项目开发涉及商品SKU&#xff0c;商品SKU计算原理就是笛卡尔积&#xff0c;下面对相关内容做一下总结。 一、什么是SKU SKUStock Keeping Unit(库存量单位)&#xff0c;即库存进出计量的单位&#xff0c;可以是以件&#xff0c;盒&#xff0c;托盘等为单位。针对电商而…

深度学习(二)---算法岗面试题

● 神经网络为什么用交叉熵 参考回答&#xff1a; 通过神经网络解决多分类问题时&#xff0c;最常用的一种方式就是在最后一层设置n个输出节点&#xff0c;无论在浅层神经网络还是在CNN中都是如此&#xff0c;比如&#xff0c;在AlexNet中最后的输出层有1000个节点&#xff0c…

深度学习面试题常见问答

目录 有哪些方法可以避免过拟合? 造成过拟合的原因&#xff1a; 解决办法&#xff1a; dropout在训练时和推理时的区别是什么&#xff1f; L1和L2正则化的区别&#xff1f;为什么L1比L2更稀疏&#xff1f; Batch Size大小如何影响收敛速度&#xff1f; BN的原理&#x…

机器学习、深度学习笔试题面试题整理

机器学习、深度学习笔试题 面试题总结 整理看到的内容&#xff0c;以免忘记 里面添加参考的链接&#xff0c;感谢各位大佬 感受野如何计算&#xff1f; 参考链接&#xff1a;https://blog.csdn.net/a841454735/article/details/88558906 感受野指的是一个特定的 CNN 特征&am…

深度学习(三)----算法岗面试题

● 神经网络为啥用交叉熵。 参考回答&#xff1a; 通过神经网络解决多分类问题时&#xff0c;最常用的一种方式就是在最后一层设置n个输出节点&#xff0c;无论在浅层神经网络还是在CNN中都是如此&#xff0c;比如&#xff0c;在AlexNet中最后的输出层有1000个节点&#xff0c;…

深度学习(二)-----算法岗面试题

● 深度学习了解多少&#xff0c;有看过底层代码吗&#xff1f;caffe,tf? ● 除了GMM-HMM&#xff0c;你了解深度学习在语音识别中的应用吗&#xff1f; 参考回答&#xff1a; 讲了我用的过DNN-HMM&#xff0c;以及与GMM-HMM的联系与区别&#xff1b;然后RNNCTC&#xff0c;这…

深度学习面试题-2

1. 下列哪一项属于特征学习算法&#xff08;representation learning algorithm&#xff09;&#xff1f; A K近邻算法 B 随机森林 C 神经网络 D 都不属于 正确答案是&#xff1a;C&#xff0c; 您的选择是&#xff1a;C 解析&#xff1a;神经网络会将数据转化为更适合解决目…

深度学习面试题总结1-20

1.CNN的卷积核是单层还是多层的&#xff1f; 描述网络模型中某层的厚度&#xff0c;通常用名词通道channel数或者特征图feature map数。不过人们更习惯把作为数据输入的前层的厚度称之为通道数&#xff08;比如RGB三色图层称为输入通道数为3&#xff09;&#xff0c;把作为卷积…

深度学习计算机视觉常见的29道面试题及解析

点击上方&#xff0c;选择星标或置顶&#xff0c;不定期资源大放送&#xff01; 阅读大概需要15分钟 Follow小博主&#xff0c;每天更新前沿干货 作者丨我要鼓励娜扎知乎 来源丨https://zhuanlan.zhihu.com/p/89587997 编辑丨极市平台 导读 正值秋招进行时&#xff0c;本文收集…

深度学习面试题-3

1. 梯度爆炸问题是指在训练深度神经网络的时候&#xff0c;梯度变得过大而损失函数变为无穷。在RNN中&#xff0c;下面哪种方法可以较好地处理梯度爆炸问题&#xff1f; A 用改良的网络结构比如LSTM和GRUs B 梯度裁剪 C Dropout D 所有方法都不行 正确答案是&#xff1a;B&am…

深度学习算法面试题总结(38题)

原文链接:https://blog.csdn.net/attitude_yu/article/details/80963323 1. 什么是凸集、凸函数、凸学习问题&#xff1f; 凸集&#xff1a;若对集合C中任意两点u和v&#xff0c;连接他们的线段仍在集合C中&#xff0c;那么集合C是凸集。 公式表示为&#xff1a;αu(1-α)v∈C…

深度学习笔试、面试题 一

1、神经网络模型&#xff08;Neural Network&#xff09;因受人类大脑的启发而得名&#xff0c;神经网络由许多神经元&#xff08;Neuron&#xff09;组成&#xff0c;每个神经元接受一个输入&#xff0c;对输入进行处理后给出一个输出&#xff0c;如下图所示。请问下列关于神经…

面试笔试整理3:深度学习机器学习面试问题准备(必会)

第一部分&#xff1a;深度学习 1、神经网络基础问题 &#xff08;1&#xff09;Backpropagation&#xff08;要能推倒&#xff09;   后向传播是在求解损失函数L对参数w求导时候用到的方法&#xff0c;目的是通过链式法则对参数进行一层一层的求导。这里重点强调&#xff…

机器学习与深度学习常见面试题

为了帮助参加校园招聘、社招的同学更好的准备面试&#xff0c;SIGAI整理出了一些常见的机器学习、深度学习面试题。理解它们&#xff0c;对你通过技术面试非常有帮助&#xff0c;当然&#xff0c;我们不能只限于会做这些题目&#xff0c;最终的目标是真正理解机器学习与深度学习…