sku的概念

SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。单品:对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性中任一属性与其他商品存在不同时,可称为一个单品。--百度百科

之前要做一个自定义sku属性并动态生成SKU表格,然后在网上找了一个类似的
http://www.internetke.com/jsE...
进行学习最后做出的效果如下

  1. 需要自定义SKU属性,可自定义SKU有两个纬度:例如颜色和规格,如下图所示
  2. 添加SKU属性后,自动生成SKU表格,需要填写表格中每个SKU对应的库存、图片、价格

实现方法:根据输入的属性值生成数组,此数组为多维数组。对数组进行排列组合,形成新的数组。然后进行表格的生成,之后合并相同列。

var step = {//SKU信息组合Creat_Table: function () {},//合并行hebingFunction: function () {},//组合数组doExchange: function (doubleArrays,propvalidArr) {           }return step;
})

获取所有失去焦点的input,形成属性数组

var SKUObj = $(".attribute .Father_Title");//获取所有的属性
var arrayTile = new Array();//存放所有的属性
var arrayInfo = new Array();//存放所有的属性值
var arrayColumn = new Array();//指定列,用来合并哪些列
var propvalidArr = [];//记录SKU值主键
var columnIndex = 0;
$.each(SKUObj, function (i, item){if ($(item).find("input[type='text']").val() != ""){var itemName = $(item).parent().find(".attrValue");var order = [];var skuVal = [];$.each(itemName, function (index,value){if($(value).find("input[type='text']").val() != ""){order.push($(value).find("input[type='text']").val());var idx = $(item).attr("propid")+$(value).find("div").attr("propvalid");skuVal.push($(item).attr("propid")+$(value).find("div").attr("propvalid"))}});if(order.join()!= ""){arrayTile.push($(item).find("input[type='text']").val());arrayInfo.push(order);arrayColumn.push(columnIndex);columnIndex++;propvalidArr.push(skuVal);}}
});

2.arrayInfo是一个多为数组,该数组进行排列组合,就是寻找出所有的组合的可能性

    1.[  ["白色", "红色"],]排列组合成为:   [  ["白色"],["红色"],]
    2.[  ["白色", "红色"],["200", "300"],]排列组合成为:[  ["白色", "200"],["白色", "300"],["红色", "200"],["红色", "300"],]
实现代码:doExchange: function (doubleArrays,propvalidArr) {var len = doubleArrays.length;if (len >= 2) {var arr1 = doubleArrays[0], propArr1 = propvalidArr[0];var arr2 = doubleArrays[1], propArr2 = propvalidArr[1];var len1 = doubleArrays[0].length, propLen1 = propvalidArr.length;var len2 = doubleArrays[1].length, propLen2 = propvalidArr.length;var newlen = len1 * len2, propnewlen = propLen1 * propLen2;var temp = new Array(newlen), proptemp = new Array(propnewlen);var index = 0;for (var i = 0; i < len1; i++) {for (var j = 0; j < len2; j++) {temp[index] = arr1[i] + "," + arr2[j];proptemp[index] = propArr1[i] + "," + propArr2[j];index++;}}var newArray = new Array(len - 1);var propnewArray = new Array(len - 1);newArray[0] = temp, propnewArray[0] = proptemp;if (len > 2) {var _count = 1;for (var i = 2; i < len; i++) {newArray[_count] = doubleArrays[i];propnewArray[_count] = propvalidArr[i];_count++;}}return step.doExchange(newArray,propnewArray);}else {var propArr = [];propArr.push(doubleArrays[0]);propArr.push(propvalidArr[0]);return propArr;}}

jquery动态生成SKU表格相关推荐

  1. JQuery动态生成Table表格

    主要用到了JQuery中的append和appendto的方法,具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ...

  2. 通过JS代码动态生成HTML表格(Table),Input框,Button按钮.并且通过Input框的值进行查询动态生成数据填写在指定的表格里

    本人公众号上线啦!!! 公众号与博客名一样:没有腹肌的程序猿 公众号文章类型:工作上所遇到的需求实现方案分享. 此外也会提供一些数据集供大家使用.(这个还在规划中,毕竟打工人时间挺紧的,哈哈哈哈) 到 ...

  3. 基于Element和vue实现的自动生成SKU表格(笛卡尔积)

    基于Element和vue实现的自动生成SKU表格 商品的SKU表格自动生成 工具 ,使用Element的表格和vue实现: 算法 ,其中算法是看一位大佬的,但他没有具体实现,这里我直接造一个轮子吧, ...

  4. jQuery动态生成select下拉框

    前一阵在项目里需要动态生成下拉框,找了一下用jQuery实现比较方便,这里整理一下. 下文所述方法只是本人在项目中遇到问题的解决方法,场景较为简单,也希望能帮助有需要的朋友 1.动态生成下拉框的两种方 ...

  5. jquery 动态生成html后click事件不触发原因

    转自:http://www.iam3y.com/html/560.html 最近在做一个项目的时候,遇到动态加载微博内容,然后点击"展开评论"后获取该微博的所有评论.这里使用了动态 ...

  6. js动态生成html表格

    刚在论坛上面逛的时候看到有人问html表格怎么动态生成,我回了一下发现有好多小伙伴追问- - 看来还是有很多人不会的啊,于是决定写个博来解救万千小伙伴于水火之中(mdzz) 首先我们要在html里面有 ...

  7. POI利用word模板动态生成word报表以及动态生成word表格

    目录 核心依赖 动态表格 测试类 工具类 动态数据 测试类 工具类 核心依赖 <dependency><groupId>org.apache.poi</groupId&g ...

  8. word文档中动态生成excel表格(基金公告系列讲解)

    1.本博文仅为了将之前工作中动态生成XBRL文件需求中word文档动态生成excel部分进行了实现(虽然隔着时间比较久),闲暇之余的考虑,应对大批量文件生成时可采用定时任务+多线程技术+redis队列 ...

  9. Java-BufferedImage动态生成一个表格图片

    需求:一个word模板,里边有一个表格,需要根据需求动态填充数据,需要转成pdf,但是我发现转成pdf的方式并不方便,想着还不如将动态的部分生成图片,然后由前端整合其他部分用于展示,也满足了需求. w ...

最新文章

  1. echarts geo地图示例_用Python,炫酷地图轻松绘制,一起来学习吧
  2. 比特币将来能取代黄金,成为世界货币?
  3. Android 集成支付宝支付,支付宝支付2.0
  4. 2007-11-7学习EXT第一天:EXT简介
  5. C语言和设计模式(观察者模式)
  6. python判断密码是否合法性_菜鸟使用python实现正则检测密码合法性
  7. vba 修改文本文档 指定行_再说For Each循环——无论Python还是VBA都要看
  8. 深入解读Linux内存管理系列(7)——伙伴系统
  9. JsonView 使用方法
  10. 【老生谈算法】matlab实现傅里叶变换算法源码——傅里叶变换
  11. c++输出字符串结尾部分中文乱码问题
  12. petalinux笔记
  13. python风变编程是骗局吗-如何看待风变编程的 Python 网课?
  14. 软件测试周刊(第67期):用一颗浏览的心,去看待人生,一切的得与失、隐与显,都是风景与风情。
  15. Restful风格的编程
  16. Windows 内网渗透之攻击域控
  17. unity 下载文件到存放本地
  18. 日语自学学习网站汇总
  19. 【实习之路】在广州欢聚时代入职的第一天
  20. 数据库中如何备份数据

热门文章

  1. Ubuntu操作系统安装之开发人员必备
  2. [VNC] 分辨率, 退出全屏,
  3. Windows10 + VS2015 环境下对gdal2.0.1进行64bit编译小结
  4. [Tool] 使用CodeMaid自動程式排版 - 摘自网络
  5. Jquery通过Ajax方式来提交Form表单
  6. MyEclipse默认编码为GBK,修改为UTF8的方法
  7. 两台电脑之间用网线之间传文件
  8. 话里话外:按单制造(MTO II)企业的资源瓶颈是怎么形成的?
  9. opencv python BRIEF描述子
  10. 禁止解析某目录的php,限制访问user_agent,php相关配置