遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)
"root":{
"children":[
{
"name":"AA",
"children":[
{
"nam1":"AA1",
"children":[
{
"name":"AAA1",
"children":[{
"name":"xsA",
"children":"",
"parameter":{"name":"xsA","OT":18,"NT":12}
}],
"parameter":{"name":"AAA1","OT":1800,"NT":12000}
},
{
"name":"AAA2",
"children":"",
"parameter":{"name":"AAA2","OT":1100,"NT":1400}
},
{
"name":"AAA3",
"children":"",
"parameter":{"name":"AAA3","OT":100,"NT":700}
}
],
"parameter":{"name":"AA1","OT":3000,"NT":1389}
},
{
"name":"AA2",
"children":[
{
"name":"AA2A",
"children":"",
"parameter":{"name":"AA2A","OT":1800,"NT":12000}
},
{
"name":"AA2B",
"children":"",
"parameter":{"name":"AA2B","OT":1100,"NT":1400}
}
],
"parameter":{"name":"AA2","OT":3000,"NT":1389}
}
],
"parameter":{"name":"AA","OT":1000,"NT":400}
},
{
"name":"BB",
"children":[
{
"name":"BB1",
"children":[
{
"name":"BBB1",
"children":"",
"parameter":{"name":"BBB1","OT":1800,"NT":12000}
},
{
"name":"BBB2",
"children":"",
"parameter":{"name":"BBB2","OT":1100,"NT":1400}
},
{
"name":"BBB3",
"children":"",
"parameter":{"name":"BBB3","OT":100,"NT":700}
}
],
"parameter":{"name":"BB1","OT":3000,"NT":1389}
},
{
"name":"BB2",
"children":[
{
"name":"BB2A",
"children":"",
"parameter":{"name":"BB2A","OT":1800,"NT":12000}
},
{
"name":"BB2B",
"children":"",
"parameter":{"name":"BB2B","OT":1100,"NT":1400}
}
],
"parameter":{"name":"BB2","OT":3000,"NT":1389}
}
],
"parameter":{"name":"BB","OT":20,"NT":8000}
},
{
"name":"CC",
"children":"",
"parameter":{"name":"CC","OT":500,"NT":2}
}
]
}
js代码
$(function(){
var treeTR,JsonOBJ,arrColumn,cloum,cc;
$.getJSON("html/template/template.json", function(msg){
//msg:root获取所有的数据
JsonOBJ=msg.root.children;
arrColumn=msg.Column;
//创建TH
treeTR+="<tr>";
for(var t=0;t<arrColumn.length;t++){
treeTR +="<th>" +arrColumn[t]+ "</th>";
}
treeTR+="</tr>";
//创建底层节点s
for(var i=0;i< JsonOBJ.length;i++){
treeTR += "<tr data-tt-id='"+i+"'>" ;
for(var k=0;k<arrColumn.length;k++){
cloum=arrColumn[k];
treeTR +="<td>" +JsonOBJ[i].parameter[cloum]+ "</td>";
}
treeTR += "</tr>";
cc= i;
tree(JsonOBJ[i].children,cc);
}
//example-advanced 为table的ID
$("#example-advanced").append(treeTR);
$("#example-advanced").treetable({ expandable: true });
});
}
//加载树的子节点
function tree(w,bb){
for(var j=0;j< w.length;j++){
treeTR += "<tr data-tt-id='"+bb+'-'+j+"' data-tt-parent-id='"+bb+"'>" ;
for(var m=0;m<arrColumn.length;m++){
cloum=arrColumn[m];
treeTR += "<td>" +w[j].parameter[cloum]+ "</td>";
}
treeTR += "</tr>";
if(jQuery.isArray(w[j].children)){
cc=bb+"-"+j;
//递归遍历所有的子节点
tree(w[j].children,cc);
}
}
});
上图:有图有真相嘛,俗话所得好:

搞定晒!
遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)的更多相关文章
- Qt 使用大神插件快速创建树状导航栏
前言 本博客仅仅记录自己的采坑过程以及帮助网友避坑,方便以后快速使用自定义控件,避免重复出错. 下载插件 大神 Github Qt 自定义控件项目地址:https://github.com/feiya ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- 前端笔记之jQuery(下)事件&节点操作&净位置&拖拽&页面卷动值&遍历JSON
一.监听事件大全 1.1 JavaScript事件 onblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onfoc ...
- MySQL递归查询树状表的子节点、父节点具体实现
mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...
- for in 遍历json
获取对象属性的语法: 1.obj.attr 2.obj["attr"] for in 遍历json的时候, 1.for(attr in json)中的attr获取到的是json中属 ...
- js声明json数据,打印json数据,遍历json数据
1.js声明json数据: 2.打印json数据: 3.遍历json数据 //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿对象型) json['b'] = ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- webform 创建树
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- fastJson顺序遍历JSON字段
fastJson在把json格式的字符串转换成JSONObject的时候,使用的是HashMap,所以排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用L ...
随机推荐
- MVC中验证码
MVC中验证码的实现(经常用,记录备用) 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...
- ubuntu 下面手动安装jdk
ubuntu 下面手动安装jdk 刚才在ubuntu安装jdk和eclipse,感觉主要安装jdk比较麻烦,记录一下笔记以备后面查看 先在官网上下载jdk的tar包:http://www.oracle ...
- JavaScript数据类型检测详解
//JS该如何检测数据的类型呢? //使用关键字: typeof //输出结果依次为:'number','string','boolean'. console.log(typeof 17); cons ...
- socket网络编程快速上手(二)——细节问题(3)
3.SIGPIPE问题 人怕牺牲,我们写的程序也一样,人有死不瞑目,程序又何尝不是?程序跑着跑着,突然就崩掉了.好一点的牺牲前告诉你些打印,差点的也能用core文件等一些手段查出死在哪了,最惨不忍睹的 ...
- 导出&导入
导出&导入 上一文中,我们大致明白了,利用MEF框架实现自动扫描并组装扩展组件的思路.本文我们继续前进,从最初的定义公共接口开始,一步步学会如何使用MEF. 在上一文中我们知道,对于每一个实现 ...
- Citrix 服务器虚拟化之三 Xenserver 网络管理
Citrix 服务器虚拟化之三 Xenserver 网络管理 每个Xenserver服务器都有一个或多个网络.XenServer 网络是虚拟的以太网交换机,它可以连接到外部接口(带或不带 VLAN 标 ...
- c/c++性能优化--I/O优化(上)
这节本想直接介绍I/O优化的,后来思考一下有必要对常用的I/O操作函数的特点介绍一下,这样要好些.下面就先介绍和I/O有关的库函数(以C99为准) 不同的操作系统有不同的文件管理方式,现行的主要有FA ...
- java基础(一)对象
对象的创建 Test test = new Test(); Test test = new Test("a"); 其实,对象被创建出来时,对象就是一个对象的引用,这个引用在内存中为 ...
- python3.4 data type
#coding=utf-8 #Python 3.4 https://docs.python.org/3.4/library/ #IDE:Eclipse +PyDev Window10 import a ...
- javascript练习题(3):基础字符串运算
用两种方法实现下列问题! 1. 把一个字符串转化为驼峰写法 需求:margin-left=>marginLeft 思路一:split 把它转化为一个数组然后修改内容 function conve ...