生成不规则表格

本地代码地址:
D:\zjl\zjl\html\array\arr3.html


例一:
原理:
①:   addrshinum== &&  addrxiannum== 1
          生成每个 省的第一个市区  第一个县城,计算每个省下属县城的总个数,将省/市  spanrow  属性加上
②:   addrshinum==&& addrxiannum>1  
          生成第一个市区 的  所有县城,
③ :    addrshinum> &&  addrxiannum== 1
          生成第一个第一个市区后 的 所有市区
④ :    addrshinum>&& addrxiannum>1
      生成第一个第一个市区后 的 所有县城

表格样式:


数据: 


js :

$( function(){
            var  person={
                firstname "Bill",
                lastname "Gates",
                id        :  [ 1, 2, 3],
                addr      : {
                    北京: {
                        海淀 : [ '万寿路', '知春路', '翠微路', '凯德'],
                        西城区 : [ '复兴门', '北京站', '南礼士路'],
                        东城区 : [ '朝阳']
                    },
                    河北   : {
                        沧州   : [ '海兴', '黄骅', '盐山', '任丘']
                    },
                    河南   : {
                        郑州   : [ '商丘'],
                        兰州   : [ '拉面']
                    }
                }
            };
            var  row_counts '';
            createAllElement( person. addr, row_counts);
        });

        function  createAllElement(addr,row_counts){
            console. log(addr);
            $( 'tbody'). empty();
            for(var addrpro in addr){                                 
               //  省    addrpronum:第几个省
                var  addrshinum 1;
                var  alladdrxiannum 0;
                for(var addrshi in addr[addrpro]){                    
                    //  市区  addrshinum:第几个省  -->  第几个市区
                    var  addrxiannum 1;
                    for(var addrxian in addr[addrpro][addrshi]){      
                    //  县街  addrxiannum:第几个省  -->  第几个市区 -->  第几个县/街道
                        if( addrshinum== &&  addrxiannum== ){
                            var  xianrownum shinum( addr[ addrpro]);
                            var  shirownum = addr[ addrpro][ addrshi]. length;
                            creatFirstTr( addrpro, addrshi,addr[ addrpro][ addrshi][ addrxian], xianrownum, shirownum);
                        }
                        else if(addrshinum==&& addrxiannum>1){
                             //  var shirownum = addr[addrpro][addrshi].length;
                            createLastTr(addr[ addrpro][ addrshi][ addrxian]);
                        }
                        else if( addrshinum> &&  addrxiannum== 1) {
                            var  xianrownum = addr[ addrpro][ addrshi]. length;
                            creatMiddleTr( addrshi,addr[ addrpro][ addrshi][ addrxian], xianrownum);
                        }
                        else if(addrshinum>&& addrxiannum>1) {
                            createLastTr(addr[ addrpro][ addrshi][ addrxian]);
                        }
                        addrxiannum ++;
                    }
                    addrshinum ++;
                }
            }
        }

        function  shinum(xian){
            var  xiannum 0;
            for ( var  in xian){
                if(xian[ i]. length 0){
                    xiannum += xian[ i]. length;
                } else {
                    xiannum 1;
                }
            }
            return  xiannum;
        }

        function  creatFirstTr(pro,shi,xian,xianrownum,shirownum){
            if(pro ==  '' || pro ==  undefined || pro ==  null){
                pro =  '--';
            }
            if(shi ==  '' || shi ==  undefined || shi ==  null){
                shi =  '--';
            }
            if(xian ==  '' || xian ==  undefined || xian ==  null){
                xian =  '--';
            }
            var  html ' <tr>'
                    + '<td rowspan="'+ xianrownum + '">'+ pro + '</td>'
                    + '<td rowspan="'+ shirownum + '">'+ shi + '</td>'
                    + '<td>'+ xian + '</td>'
                    + '</tr>';
            $( 'tbody'). append( html);
        }

        function  creatMiddleTr(shi,xian,xianrownum){
            if(shi ==  '' || shi ==  undefined || shi ==  null){
                shi =  '--';
            }
            if(xian ==  '' || xian ==  undefined || xian ==  null){
                xian =  '--';
            }
            var  html ' <tr>'
                    + '<td rowspan="'+ xianrownum + '">'+ shi + '</td>'
                    + '<td>'+ xian + '</td>'
                    + '</tr>';
            $( 'tbody'). append( html);
        }

        function  createLastTr(xian){
            if(xian ==  '' || xian ==  undefined || xian ==  null){
                xian =  '--';
            }
            var  html ' <tr>'
                    + '<td>'+ xian + '</td>'
                    + '</tr>';
            $( 'tbody'). append( html);
        }


------------------------------------------------------------------------------------------------------------------------------------------------------------

例二:
div  模拟 table ,php 后台数据

 


部分代码例子: 
<!-- 所有产品信息 -->
< div  class= "j-product product_info" >
    < foreach  name= "inv_data"  item= "v1"  key= "cate1"  >
        <!-- 第一级大类 分类 (品类) -->
        < div  class= "clearfix product_list j-product_list" >
            <!-- 复选框 -->
            < div  class= "checkul fl" >
                < volist  name= "v1"  id= "v2" >
                    < ul  class= "pro_check j-pro_check" >
                        < for  start= "0"  end= "count($v2)"  step= "1"  name= "checkone"  >
                            < li >< strong  class= "col08" >< input  type= "checkbox"  class= "checkitem" ></ strong ></ li >
                        </ for >
                    </ ul >
                </ volist >
            </ div >
            <!-- 第一级大类  品类名 -->
            < span  class= "pro_tit1" >{$cate1} </ span >
            <!-- 第二级及之后 分类 -->
            < div  class= "product_con j-product_con fl" >
                < volist  name= "v1"  id= "v2" >
                    <!-- 第二级分类 (商品) 展示每一种 -->
                    < div  class= "product_item j-product_item clearfix" >
                        <!--  第二级分类 (商品名) -->
                        < span  class= "pro_tit2" >{$key} </ span >
                        <!-- 第三级(品牌/系列)及之后  分类展示 -->
                        < ul  class= "j-proitem" >
                            < volist  name= "v2"  id= "v3" >
                                <!-- 第三级(品牌/系列)展示每一种  具体信息-->
                                < li  class= "clearfix" >
                                    < div  class= "col03" >
                                        < href= "{:C('SHOPNCURL')}shop/index.php?act=goods&op=index&goods_id={$v3['goods_id']}"  class= "goods_info" >
                                            < img  src= "{$v3['goods_image']}" >
                                            < span  class= "goods_name"  title= "{$v3['goods_name']}" >{$v3['goods_name']} </ span >
                                        </ a >
                                    </ div >
                                    < div  class= "col05" >{$v3['brandName_1']|default='--'}/{$v3['series_name']|default='--'} </ div >
                                    < div  class= "col05" >{$v3['goods_serial']|default='--'} </ div >
                                    < div  class= "col05 unit-price" >{$v3['goods_price']|default='--'} </ div >
                                    < php >$discount = $v3['goods_price'] * $v3['designer_discount'] </ php >
                                    < div  class= "col05 discount-price" >
                                        {$discount}
                                        < input  class= "j-discount-hidden"  type= "hidden" value= " {$discount}" >
                                    </ div >
                                    < div  class= "col05" >
                                        < input  type= "number"  min= "1"  name= "num[]"  value= "{$v3['total']}"  j-goods_id= "{$v3['goods_id']}"  class= "number"  datatype= "n"  errormsg= "请输入整数!" >
                                        <input class="j-numhidden" type="hidden" name="order[]" value="{$v3['goods_id']}|{$v3['total']}">
                                    </ div >
                                    < div  class= "col07 total-price" ></ div >
                                </ li >
                            </ volist >
                        </ ul >
                    </ div >
                </ volist >
            </ div >
        </ div >
        <!--</volist>-->
    </ foreach >
</ div >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值