实用jquery实现动态拼装json数组中的内容拼装table

问题描述

实用jquery实现动态拼装json数组中的内容拼装table

现有如下数组
Var json=
[{"did":1,"businessType":"2-理赔","weekday":"2-周二","startTimeStr":"11:57:48","endTimeStr":"11:57:49","reserveNum":"11","branchCode":"8636","panelCode":"123"},
{"did":2,"businessType":"2-理赔","weekday":"2-周二","startTimeStr":"12:57:48","endTimeStr":"12:57:49","reserveNum":"22","branchCode":"8636","panelCode":"123"},
{"did":3,"businessType":"2-理赔","weekday":"3-周三","startTimeStr":"13:57:48","endTimeStr":"13:57:49","reserveNum":"33","branchCode":"8636","panelCode":"123"},
{"did":4,"businessType":"4-新契约","weekday":"4-周四","startTimeStr":"14:57:48","endTimeStr":"14:57:49","reserveNum":"44","branchCode":"8636","panelCode":"123"}
]
=======================字段注释如下
businessType:业务类型

weekday:周期

startTimeStr- endTimeStr:时间段
可预约数:reserveNum
-----业务类型对应关系
1 保全
2 理赔
3 投诉
4 新契约
5 产品销售
6 保全受理
7 保全处理
9 法人保全
10 续期业务
11 财务
12 其他
13 咨询
--周期对应关系
1 周一
2 周二
3 周三
4 周四
5 周五
6 周六
7 周日
*********************************实现效果,根据json数组实现如下table效果,实用jquery动态拼装,解析json实现效果,**已经实现,但有两个问题,
1、如果业务类型 相同个数超过3个,则表格会乱掉(如同时添加3个 业务类型为:理赔)
2、如果业务类型对应码大于 10 ,则表格会乱掉(如选择 10 续期业务或11财务等)
**
实现代码如下,
function myCallBackDetailAdd(json1){

var even = 0;
var odd = 1;

$.each(json1,function(){
    var businessType = this.businessType.split('-');
    var weekDay = this.weekday.split('-');
    //业务范围中文
    var btext = businessType[1];
    //业务范围value
    var bid = parseInt(businessType[0]);
    //周期中文
    var text = weekDay[1];
    //周期value
    var id = parseInt(weekDay[0]);
    //时间段
    var time = this.startTimeStr+"-"+this.endTimeStr;
    //可预约数
    var num = this.reserveNum;
    //删除使用的id
    var didarg =parseInt(this.did);
    //第一行
    var interHtmlweek1 = "<th id=th"+id+" colspan='3'>"+text+"</th>";
    //第二行

    var interHtmlweek2 = "<th id=th"+id+">时间段</th>"+"<th id=th"+id+">可预约数</th>"+"<th id=th"+id+">操作</th>";

    var interHtmlweek3 = "<td id=td"+id+">"+time+"</td>"+"<td id=td"+id+">"+num+"</td>"+"<td id=td"+id+">"+
    "<a title='修改' href='css/reserveInfo/reserveInfoAddModify_reserveInfoAction.action' maxable='true' minable='true'  resizable='true'  width='450' height='200' target='dialog' onclick='modifyReserveDetail(this,"+id+","+didarg+");'  class='btnEdit' >修改</a>"+
                         "<a id='delButton' title='删除'  onclick='delReserveDetail(this,"+id+","+didarg+");' class='btnDel' >删除</a>"+
                         "</td>";
    //排序td,th
    $('#theadAdd tr#tr0 th:gt(0)').each(function(){
    var thIndex = $(this).attr('id').substr(2,3);
    if(parseInt(thIndex)>parseInt(id)&&($("#theadAdd tr#tr0 th#th"+id).length==0)){
        $(interHtmlweek1).insertBefore("#theadAdd tr#tr0 th#th"+thIndex+":eq(0)");
        $(interHtmlweek2).insertBefore("#theadAdd tr#tr1 th#th"+thIndex+":eq(0)");
        $(interHtmlweek3).insertBefore("#tbodyAdd tr#bodyTr"+bid+even+" td#td"+thIndex+":eq(0)");

    }else if(parseInt(thIndex)==parseInt(id) && $("#theadAdd tr#tr0 th#th"+id).length>0 && $("#tbodyAdd tr#bodyTr"+bid+even+" td#td"+id).length >0){
        /* $("#tbodyAdd tr#bodyTr"+bid+even).attr("rowspan","2");*/
        if($("#tbodyAdd tr#bodyTr"+bid+odd).length ==0){
            $("#tbodyAdd tr#bodyTr"+bid+even+" td:eq(0)").attr("rowspan","2");
            $("<tr height='25' id=bodyTr"+bid+odd+" align='center' bgcolor='white'>"+"</tr>").insertAfter("#tbodyAdd tr#bodyTr"+bid+even);
            $("#tbodyAdd tr#bodyTr"+bid+odd).append(interHtmlweek3).initUI();
        }else{
            $("#tbodyAdd tr#bodyTr"+bid+odd).append(interHtmlweek3).initUI();
        }
    }else if( parseInt(thIndex)>parseInt(id)&&($("#tbodyAdd tr#bodyTr"+bid+even+" td#td"+id).length ==0)){
        $(interHtmlweek3).insertBefore("#tbodyAdd tr#bodyTr"+bid+even+" td#td"+thIndex+":eq(0)");
    }
    });
    if($("#tbodyAdd tr#bodyTr"+bid+even).length==0){
        //添加一行
        $("#tbodyAdd").append("<tr height='25' id=bodyTr"+bid+even+" align='center' bgcolor='white'>"+"</tr>");
        $("#tbodyAdd tr#bodyTr"+bid+even).append("<td id=td"+bid+id+">"+"<div>"+btext+"</div>"+"</td>");
    }
    //添加第一第二行的列
    if($("#theadAdd tr#tr0 th#th"+id).length==0){
        $('#theadAdd tr#tr0').append(interHtmlweek1);
        $('#theadAdd tr#tr1').append(interHtmlweek2);
    }
    if($("#tbodyAdd tr#bodyTr"+bid+even+" td#td"+id).length==0){
        $("#tbodyAdd tr#bodyTr"+bid+even).append(interHtmlweek3).initUI();
    };

});

 $("#tbodyAdd tr").each(function(i){
        //获取每行的id
        var tr = $("#tbodyAdd tr"+":eq("+i+")").attr('id').substr(6,8);
        $('#theadAdd tr#tr0 th:gt(0)').each(function(k){
            //获取周期的id
            var Index = $(this).attr('id').substr(2,3);
            //获取每行添值相同id的第一列id
            if($("#tbodyAdd tr"+":eq("+i+")"+" td:eq(0)").attr("id").length ==4){
                if($("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k+1)+")").length==0){
                         var dd = $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k-2)+")").attr('id').substr(2,3);
                         $("<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>").insertAfter("#tbodyAdd tr#bodyTr"+tr+" td#td"+dd+":eq(2)");
                }else{
                        $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k+1)+")").each(function(){
                            var td = $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k+1)+")").attr('id').substr(2,3);
                            if(parseInt(Index) < parseInt(td)){
                                $("<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>").insertBefore("#tbodyAdd tr#bodyTr"+tr+" td#td"+td+":eq(0)");
                            }
                        });
                }
           }else{
               if($("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k)+")").length==0){
                     var dd = $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k-1)+")").attr('id').substr(2,3);
                     $("<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>").insertAfter("#tbodyAdd tr#bodyTr"+tr+" td#td"+dd+":eq(2)");
               }else{
                    $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k)+")").each(function(){
                        var td = $("#tbodyAdd tr"+":eq("+i+")"+" td"+":eq("+(3*k)+")").attr('id').substr(2,3);
                        if(parseInt(Index) < parseInt(td)){
                            $("<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>"+"<td id=td"+Index+">"+"</td>").insertBefore("#tbodyAdd tr#bodyTr"+tr+" td#td"+td+":eq(0)");
                        }
                    });
               }
           }
    });
});

//清空json数组
 json.splice(0,json.length);

}

实现效果图如下:

解决方案

http://www.cnblogs.com/wangsu/archive/2012/02/07/jquery_dynamictable.html

时间: 2024-10-03 05:27:25

实用jquery实现动态拼装json数组中的内容拼装table的相关文章

jquery ajax 向后台传 json 数组 出现 400 错误,后台用的springmvc

问题描述 jquery ajax 向后台传 json 数组 出现 400 错误,后台用的springmvc 解决方案 400 请求出错 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求. 应该是你发送的内容出问题了 解决方案二: 400,服务器自动返回的错误,是你请求的参数与后台的mvc路由无法匹配吧 解决方案三: 你将data:stringify(rows)更改为data:rows试试 解决方案四: 测试了你的代码,报415错误,就是服务器拒绝处理请求.原因是你传递的

js 取出json数组中的值

js 取出json数组中的值 <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>js 取出json数组中的值</title> </head> <body>

PHP中使用递归替换数组中的内容

PHP开发小技巧实例程序,使用递归替换数组中的内容. <?php $arr = array("<小刚>","<小晓>","<小飞>","<小李>","<小红>"); function arrContentReplact($array) { if(is_array($array)) { foreach($array as $k => $v

javascript实现数组中的内容随机输出_javascript技巧

有时候我们可能需要从数组中随机抽出一项内容,下面就通过一段代码实例介绍一下如何实现此效果. 代码如下: <script type="text/JavaScript"> var theArray=new Array(); theArray[0]=""; theArray[1]="一"; theArray[2]="二"; theArray[3]="三"; theArray[4]="四&qu

javascript动态改变表格单元格中的内容

说到用js动态的改变td里面的内容,我们就会想到dom 是吧,下面来看看简单的代码 <TABLE id="table1" border=1 width="150"> <TR> <TD align="center" width="50%">0,0</TD> <TD align="center">0,1</TD> </TR> &

紧急求助啊!怎么将动态加载到页面中的内容导出到excel啊??

问题描述 response.addHeader("Content-disposition","attchment;filename=jyt.xls");response.setContentType("application/vnd.ms-excel");//定义输出类型这两个语句只能将网页中静态的内容导出,但是用ajax从数据库取出来的数据不能导出,怎么办呢??求助各路大虾!! 解决方案 解决方案二:不用其他的jar包,行不解决方案三:有人知道

listview布局设置-跪求:listview如何只占布局中央位置,怎么将json数组传到list中?

问题描述 跪求:listview如何只占布局中央位置,怎么将json数组传到list中? 紧急求问各位高手: listview只能独占一个xml文件吗?我想做一个与微博客户端相似的界面,上面是一个layout放各种按钮,中间是一个listview(可以滚动),最底端是一个layout(用于提交信息).这样的listview应该如何设置呢? activity又如何使用这个listview,将网络中获取到的json数组中的字符串一个一个地传到listview里面呢? 求助求助. 以下是我尝试的act

json数组删除

问题描述 有一个json数组,{'people':[{'name':'jetty','sex':'男'},{'name':'lily','sex':'女'}]}有一个json:var aa={'name':'jetty','sex':'男'}:我的问题是:想要判断aa 是否存在于json数组中,如果存在则从数组中删除这个元素.希望好心人帮助.谢谢. 解决方案 var aa={'name':'jetty','sex':'男'};var bb = {'people':[{'name':'jetty'

Jquery解析json字符串及json数组的方法

  本文实例讲述了Jquery解析json字符串及json数组的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 6