接上篇 checkbox数据的带入

Posted 橘子红

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接上篇 checkbox数据的带入相关的知识,希望对你有一定的参考价值。

  首先带回回来的json数据 先转换为树形结构 

才能方便之后遍历 添加数据,这是一段递归把数据变为树形结构的方法

// 把返回到LIST转为树形结构
function getTree(data, fid) {
    var result = [];
    var temp;
    for (var i = 0; i < data.length; i++) {
        if (data[i].fid == fid) {
            var obj = {
                "text" : data[i].gnmc,
                "gnid" : data[i].gnid,
                "yxbz" : data[i].yxbz
            };
            temp = getTree(data, data[i].gnid);
            if (temp.length > 0) {
                obj.children = temp;
            }
            result.push(obj);
        }
    }
    return result;
}

但注意:该方法使用的数据是这样存储的 fid是它的父级元素id  例如:gnid 13 的父级为gnid 12  ,gnid 12的父级为1 是这样的结构。

首先得到的数据 data = JSON.parse(data); //JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的javascript值或对象

在转换为树形结构 var treeList = getTree(data, null);

对树形结构遍历 进行页面结构拼接 数据添加

 

 1 var html1j = "";
 2     var html2j = "";
 3     for (var i = 0; i < treeList.length; i++) {
 4         html1j += "<div class=\'kuai\'><div class=\\"row row-box tree-title\\">"
 5                 + "<span class=\'h4 yjtitle\' >" + treeList[i].text
 6                 + "</span> <span class=\'qiyongSpan\'>"
 7                 + "<label class=\'ant-checkbox-wrapper\'> "
 8                 + "<span class=\'ant-checkbox ant-checkbox-checked\' id=\'"
 9                 + treeList[i].gnid + "\' onclick=\'xuan1J(this.id)\'>"
10                 + "<input type=\'checkbox\' class=\'ant-checkbox-input\' value=\'"
11                 + treeList[i].yxbz + "\'></input>";
12         if (treeList[i].yxbz == \'Y\') {
13             html1j += "<span class=\'ant-checkbox-inner chose\' style=\'background-color:#108ee9;\'></span>"
14                     + "</span>" + "<span>启用</span>";
15         } else {
16             html1j += "<span class=\'ant-checkbox-inner\' ></span>" + "</span>"
17                     + "<span>禁用</span>";
18             ;
19         }
20 
21         html1j += "</label>"
22                 + "</span>"
23                 + "<button class=\'btn btn-info rt\' style=\'margin-top: 0%; margin-right: 2%;\' id=\'" 
24                 + "b" + i + "\' onclick=\'shouqifn(" + i + ")\'>收起</button>"
25                 + "</div>"; /* +"<div class=\'tree-body\' id=\'"+"a"+i+"\'>" */
26         if (treeList[i].children) {
27             html2j += "<div class=\'tree-body\' id=\'" + "a" + i + "\'>";
28             for (var j = 0; j < treeList[i].children.length; j++) {
29                 html2j += "<div class=\'cbt-item\'>"  //里面具体样式用单引号   每一段用双引号 可以不分行用双引号括起来  也可向这样用分开 用加号连
30                         + "<div class=\'cbt-item-h\'>"
31                         + "<label class=\'ant-checkbox-wrapper\'>"
32                         + "<span class=\'ant-checkbox ant-checkbox-checked\' id=\'"
33                         + treeList[i].children[j].gnid
34                         + "\' onclick=\'xuan2J(this.id)\'>"
35                         + "<input type=\'checkbox\' class=\'ant-checkbox-input\' value=\'"
36                         + treeList[i].children[j].yxbz + "\' ></input>";
37                 if (treeList[i].children[j].yxbz == \'Y\') {
38                     html2j += "<span class=\'ant-checkbox-inner chose\'style=\'background-color:#108ee9;\'></span>";
39                     
40                 } else {
41                     html2j += "<span class=\'ant-checkbox-inner\'></span>";
42                 }
43 
44                 html2j += "</span>" + "<span>" + treeList[i].children[j].text //注意拼接的格式 “+数据+”
45                         + "</span>" + "</label>";
46 
47                 if (treeList[i].children[j].children) { //可以对数据判断 由结果来拼接
48                     for (var k = 0; k < treeList[i].children[j].children.length; k++) {
49                         html2j += "<span class=\'cbt-line\'></span>";
50                     }
51 
52                 }
53 
54                 html2j += "</div>" + "<div class=\'cbt-root\'>";
55 
56                 if (treeList[i].children[j].children) {
57 
58                     for (var k = 0; k < treeList[i].children[j].children.length; k++) {
59                         html2j += "<label class=\'cbt-root-c ant-checkbox-wrapper\'>"
60                                 + "<span class=\'ant-checkbox ant-checkbox-checked\' id=\'"
61                                 + treeList[i].children[j].children[k].gnid
62                                 + "\' onclick=\'xuan3J(this.id)\'>"
63                                 + "<input type=\'checkbox\' class=\'ant-checkbox-input\' value=\'"
64                                 + treeList[i].children[j].children[k].yxbz
65                                 + "\' >";
66                         if (treeList[i].children[j].children[k].yxbz == "Y") {
67                             html2j += "</input>"
68                                     + "<span class=\'ant-checkbox-inner chose\'style=\'background-color:#108ee9;\'>";
69                             /* $("#"+id).find(\'span\').css({"background-color":"#108ee9"}); */
70                         } else {
71                             html2j += "</input>"
72                                     + "<span class=\'ant-checkbox-inner \'>";
73                         }
74                         html2j += "</span>" + "</span>" + "<span>"
75                                 + treeList[i].children[j].children[k].text
76                                 + "</span>" + "</label>";
77                     }
78 
79                 }
80                 html2j += "</div></div>";
81             }
82             html2j += "</div>";
83         }
84         $(\'div.xuanbody\').append(html1j + html2j);
85         html1j = "";
86         html2j = "";
87 
88     }

 

 

 

 

 

 

以上是关于接上篇 checkbox数据的带入的主要内容,如果未能解决你的问题,请参考以下文章

手写数字识别——基于全连接层和MNIST数据集

如何一个接一个地打开同一片段但具有不同数据的多个实例?

关于checkbox 样式的改变 设置自定义样式

下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布

PullToRefreshListView 内嵌checkbox 数据丢失问题

Android:如何通过c++来调用java程序:接上篇