接上篇 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     }

 

时间: 2024-10-24 21:01:16

接上篇 checkbox数据的带入的相关文章

上篇 | 大数据公司挖掘数据价值的49个典型案例(值得收藏)

导读:本文是近年来不同行业.不同领域的大数据公司的一些经典案例总结.尽管有些已经是几年前的案例,但其中的深层逻辑对于未来仍有启发. 本文力图从企业运营和管理的角度,梳理出发掘大数据价值的一般规律:一是以数据驱动的决策,主要通过提高预测概率,来提高决策成功率:二是以数据驱动的流程,主要是形成营销闭环战略,提高销售漏斗的转化率:三是以数据驱动的产品,在产品设计阶段,强调个性化:在产品运营阶段,则强调迭代式创新. 01 上篇:天然大数据公司的各种套餐 从谷歌.亚马逊.Facebook.LinkedIn

jQuery EasyUI DataGrid Checkbox 数据设定与取值

$('#dg').datagrid({ title: 'CheckBox Selection on DataGrid', url: 'datagrid_data3.json', width: '700', rownumbers: true, columns:[[ { field:'ck',checkbox:true }, { field: 'productid', title: 'productid' }, { field: 'productname', title: 'productname'

上篇丨数据融合平台DataPipeline的应用场景

距离2020年还有不到一周的时间,在过去的一年里DataPipeline经历了几次产品迭代.就最新的2.6版本而言,你知道都有哪些使用场景吗?接下来将分为上下篇为大家一 一解读,希望这些场景中能出现你关心的那一款. 场景一:应对生产数据结构的频繁变更场景 1. 场景说明 在同步生产数据时,因为业务关系,源端经常会有删除表,增减字段情况.希望在该情况下任务可以继续同步.并且当源端增减字段时,目的地可以根据设置选择是否同源端一起增减字段. 2. 场景适用说明   源/目的地:关系型数据库 读取模式:

ajax从struts2请求数据的返回形式

这篇随笔算是接上篇的数据请求返回,上一篇关于分页用的返回的数据形式是json,http://www.cnblogs.com/tele-share/p/7192206.html这次主要探讨ajax从struts接收html和io流的数据形式. 方式一:接收html格式的数据 jsp页面 1 <!-- ajax从struts请求拼接完成的html --> 2 <script type="text/javascript"> 3 var url = "${pa

PullToRefreshListView 内嵌checkbox 数据丢失问题

在PullToRefreshListView 内部内嵌了Checkbox如下图所示: 原本设计思路是:对CheckBox 进行 setOnCheckedChangeListener 监听 当CheckBox 的状态变化的时候能即时将更新积分,并将 该item的checkbox 状态存到 ListView 中. 如下为checkbox  的程序片段 但在实际运行的时候却发现了问题 但列表中项目较多,往下滑动列表的时候,会发现前面选择的项会自动清除 如下图: 前面勾选的商品已清除了(积分还在) 解决

[大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用&lt;2&gt;

前言:上篇[大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用<1>中介绍了ES ,Kibana的单机到分布式的安装,这里主要是介绍Elasticsearch5.3.1的一些概念.官方示例的基本数据导入,数据查询以及ES,kibana的功能组件的认识和熟悉. 一.Elasticsearch中的基本概念: Elasticsearch所涉及到的每一项技术都不是创新或者革命性的,全文检索,分析系统以及分布式数据库这些早就已经存在了.它的革命性在于将这些独

jquery之checkbox

//checkbox 数据回显 var publishRange=rowData.publishRange.split(",");          for(var i = 0;i < publishRange.length; i++) {             $("input[name='publishRangeC'][value="+publishRange[i]+"]").attr('checked', true);      

【Unity3D游戏开发】—— PlayerPrefs类实现本地持久化数据存储

在很多游戏中都会有"存储进度","读取进度"等菜单,或者当我们进入下一个场景时有些数据需要带入下一个场景.这就需要数据储存.Unity中提供了一个用于本地持久化保存于读取数据的类--PlayerPrefs. 它是以键值对的形式将数据保存在文件中. 下面来看看PlayerPrefs的简单用法.. //得到存储的数据 Grade = PlayerPrefs.GetFloat("mGrade", 0.0f).ToString(); //获取浮点型 Ag

【开源】OSharp框架解说系列(5.2):EntityFramework数据层实现

〇.前言 上篇 的数据层设计中,我们主要设计了数据对对外开放的 实体基类EntityBase<TKey>,单元操作接口IUnitOfWork 和 数据仓储接口IRepository<TEntity, TKey>,下面我们来解说怎样来使用 EntityFramework 对这些数据访问需求进行实现.EntityFramework 的实现中,我们不仅要实现以上设计的两个接口,还要做以下几件事: 设计一个与 业务实体解耦的 EntityFramework数据上下文类 设计 实体加载方案,