循环商品属性

来源:互联网 发布:java线程模型的理解 编辑:程序博客网 时间:2024/05/21 21:33
 <script>        //收集点击按钮        var collect =new Object();        $("#<?=$name?>").change(function(){            <?=$func_name?>(this);        });        function getmodel(e){            mid = $('#mid option:selected').val();            $.post("<?=U('goods/model_get');?>", { 'mid': mid },                function(data){                    if(data.success){                        $("#table_spec").empty();                        $("#property").empty();                        var specarr = data.infor.spec;//                        循环出规格                        for(var j=0;j<specarr.length;j++){                            var tagstr = "<tr>";                            tagstr =tagstr+"<td style='width:50px;'>"+specarr[j].name+":</td>";                            var child_val = specarr[j].children;                            tagstr=tagstr+"<td>";                            for(var i=0;i<child_val.length;i++){                                tagstr=tagstr+"<button class='btn_spec' name_name="+specarr[j].name+" name_id="+specarr[j].id+" var_id="+child_val[i].id+" type='button'>"+child_val[i].name+"</button><button type='button' class='icon Hui-iconfont spec_img'>&#xe604;</button>";                            }                            tagstr = tagstr+"</td></tr>";                            $("#table_spec").append(tagstr);//添加规格选项                        }//                        将返回的属性添加进table                        $("#property").append(data.infor.property);//添加属性                    }                    else{                        layer.alert("操作失败,原因:"+data.msg,{icon:5});                    }// John//  2pm                }, "json");        }        $("#spec").on('click','.btn_spec',function(){            if(!$(this).attr('tag')||0==$(this).attr('tag')){                $(this).attr('tag',1);                $(this).css('background',"#789");               var name_id=$(this).attr('name_id');               if(collect[name_id]){                   collect[name_id].push($(this));               }else{                 var  temp_arr =  new Array();                   temp_arr.push($(this));                   collect[name_id]=temp_arr;               }                var ele_str = new Object();                ele_str['th'] = '<tr>';                ele_str['td']=new Array();                ele_str['tds']='';                ele_str['length']=Object.getOwnPropertyNames(collect).length;                ele_str['count'] =0;                ele_str['namestr'] =new Array();                ele_str['key']=Object.getOwnPropertyNames(collect);                ele_str['idstr']=new Array();//库存字符串                for_item(collect,ele_str);                for(var i=0;i<ele_str.key.length;i++){                   var t_arr = ele_str.key;                    var t = t_arr[i];                    ele_str.th=ele_str.th+"<th>"+collect[t][0].attr('name_name')+"</th>";                }                ele_str.th = ele_str.th+"<th>库存</th><th>单位</th><th>价格</th></tr>";                $("#g_spec").empty();                $("#g_spec").append(ele_str.th+ele_str.tds);            }else{                $(this).attr('tag',0);                $(this).css('background',"#e8e8e8");                var name_id=$(this).attr('name_id');                collect[name_id].splice($.inArray($(this),collect[name_id]),1);                collect[name_id].concat();                if(collect[name_id].length==0){                    delete collect[name_id];                }                if(!$.isEmptyObject($(collect))){                    $("#g_spec").empty();return;                }                var ele_str = new Object();                ele_str['th'] = '<tr>';                ele_str['td']=new Array();                ele_str['tds']='';                ele_str['key']=Object.getOwnPropertyNames(collect);//规格名id 数组                ele_str['length']=Object.getOwnPropertyNames(collect).length;//规格类型总数   颜色和大小  length=2                ele_str['count'] =0; //当前递归次数                ele_str['namestr'] =new Array();//规格项字符串                ele_str['idstr']=new Array();//库存字符串                for_item(collect,ele_str);                for(var i=0;i<ele_str.key.length;i++){                    var t_arr = ele_str.key;                    var t = t_arr[i];                    ele_str.th=ele_str.th+"<th>"+collect[t][0].attr('name_name')+"</th>";                }                ele_str.th = ele_str.th+"<th>库存</th><th>单位</th><th>价格</th></tr>";                $("#g_spec").empty();                $("#g_spec").append(ele_str.th+ele_str.tds);            }        });        var style_str =  "style='border-radius:4px; border:1px solid #DBDBDB ;'";//input 标签样式        //循环出规格        function for_item (collect,ele_str){            var count = ele_str.count;            var key = ele_str.key[count];            var ele_arr = collect[key];               ele_str.count=ele_str.count+1;                for(var j=0;j<ele_arr.length;j++){ // 如果递归的层数 ==递归总层数                    if(ele_str.count==ele_str.length) {//                        链接规格名                        var name=  ele_arr[j].html();                        ele_str.namestr.push(name);                        var  namestr = ele_str.namestr.join();//                        链接每行显示规格名                        var td = "<td>" + ele_arr[j].html() + "</td>";                        ele_str.td.push(td);                        td = ele_str.td.join();                        td = td.replace(/,/g, '');//                        链接规格id                        var varid = "[" + ele_arr[j].attr('var_id') + "]";                        ele_str.idstr.push(varid);                        var idstr = ele_str.idstr.join();                        var str = idstr.replace(/,/g, '');                        var idstr = idstr.replace(/]|\[/g, '');//                        连接一行规格                        ele_str.tds = ele_str.tds + td + "<td><input type='hidden' name='val"+str+"[namestr]' value="+namestr+"><input type='hidden' name='val"+str+"[idstr]' value="+idstr+"><input type='hidden' name='val"+str+"[namestr]' value="+namestr+"><input type='text' name='val"+str+"[stock]' "+style_str+"></td><td><input name='val"+str+"[sku]' "+style_str+" type='text'></td><td><input name='val"+str+"[price]' "+style_str+" type='text'></td></tr>";//                        返回上层                        ele_str.td.pop();                        ele_str.idstr.pop();                        ele_str.namestr.pop();                    } else{//                        继续递归                        var name = ele_arr[j].html();                        ele_str.namestr.push(name);                        var varid= "["+ele_arr[j].attr('var_id')+"]";                        ele_str.idstr.push(varid);                        var td = "<td>"+ele_arr[j].html()+"</td>";                        ele_str.td.push(td);                        for_item(collect,ele_str);                    }                }            ele_str.td.pop();            ele_str.idstr.pop();            ele_str.namestr.pop();            ele_str.count = ele_str.count - 1;            return;        }    </script>
0 0