根据回传Json数据生成树

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>树控件</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="jquery-1.8.1.min.js">
        </script>
        <style type="text/css">
            body {
                padding: 0;
                margin: 0;
                font-size: 12px;
                color: #666;
                font-family: Arial, "微软雅黑";
            }
            
            #jptree {
                overflow: hidden;
            }
            
            #jptree #left {
                width: 260px;
                padding: 10px;
                float: left;
                background: #eee;
            }
            
            #jptree #right {
                margin-left: 280px;
                padding: 10px;
            }
        </style>
    </head>
    <body>
        <div id="jptree">
            <div id="left">
                <div id="left_top">
                    树结构内容
                </div>
                <ul id="treeNode">
                </ul>
            </div>
            <div id="right">
                <div id="right_top">
                    内容展示
                </div>
                <div id="right_con">
                </div>
            </div>
        </div>
        <script type="text/javascript">
            var nodes = {
                "CLSID": "_内部类型_",
                "RST": ["属于", "连接", "附加", "任务", "设备组", "角色"],
                "group": {
                    "资产": ["园区", "建筑", "楼层", "房间", "独立设备", "组", "机柜", "架式设备", "小品", "放样物体", "放样物体集合"],
                    "便签": ["便签"],
                    "机柜": ["机柜"],
                    "配线": ["配线"],
                    "人员": ["用户"],
                    "任务单": ["任务单"],
                    "上架": ["架式设备"],
                    "设备组": ["设备组"],
                    "角色": ["角色"],
                    "库存": ["库存"]
                },
                "classPool": {
                    "园区": {
                        "_ID_": "名称",
                        "_NAME_": "名称"
                    },
                    "建筑": {
                        "_ID_": "名称",
                        "_NAME_": "名称",
                        "_PARENT_": "所属"
                    },
                    "楼层": {
                        "_ID_": "名称",
                        "_NAME_": "名称",
                        "_PARENT_": "所属"
                    },
                    "房间": {
                        "_ID_": "名称",
                        "_NAME_": "名称",
                        "_PARENT_": "所属"
                    },
                    "组": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属"
                    },
                    "机柜": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_PRODUCT_": "产品库",
                        "_BOOK_": "关联台账"
                    },
                    "架式设备": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_SITE_": "统计分类2",
                        "_布局_": "布局",
                        "_PRODUCT_": "型号系列/版本号"
                    },
                    "刀片": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_SITE_": "统计分类2",
                        "_布局_": "布局",
                        "_PRODUCT_": "型号系列/版本号"
                    },
                    "独立设备": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_PRODUCT_": "产品库"
                    },
                    "门": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_PRODUCT_": "产品库"
                    },
                    "板卡": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属",
                        "_SITE_": "插槽",
                        "_PRODUCT_": "型号系列/版本号",
                        "_BOOK_": "关联台账"
                    },
                    "配线": {
                        "_ID_": "配线编号",
                        "_P1_": "P1设备编号",
                        "_P1PORT_": "P1端口编号",
                        "_P2_": "P2设备编号",
                        "_P2PORT_": "P2端口编号"
                    },
                    "便签": {
                        "_ID_": "id",
                        "_FID_": "fid",
                        "_TID_": "tid",
                        "_MSG_": "msg",
                        "_TIME_": "time"
                    },
                    "任务单": {
                        "_ID_": "id",
                        "_UID_": "uid",
                        "_NAME_": "name",
                        "_TIME_": "time"
                    },
                    "用户": {
                        "_ID_": "id",
                        "_USERNAME_": "username",
                        "_PASSWORD_": "password"
                    },
                    "产品库": {
                        "_ID_": "型号",
                        "_MODEL_": "模型"
                    },
                    "小品": {
                        "_ID_": "编号",
                        "_PARENT_": "所属",
                        "_PRODUCT_": "产品库"
                    },
                    "漏水线": {
                        "_ID_": "编号",
                        "_PARENT_": "所属"
                    },
                    "设备组": {
                        "_ID_": "id",
                        "_NAME_": "名称",
                        "_DEPICT_": "描述",
                        "_SCOPE_": "授权范围",
                        "_SCOPEAOP_": "授权权限",
                        "_BASE_": "附加范围",
                        "_BASEAOP_": "附加权限"
                    },
                    "角色": {
                        "_ID_": "id",
                        "_NAME_": "名称",
                        "_DEPICT_": "描述",
                        "_FUN_": "功能"
                    },
                    "放样物体": {
                        "_ID_": "编号",
                        "_NAME_": "编号",
                        "_PARENT_": "所属"
                    },
                    "放样物体集合": {
                        "_ID_": "名称",
                        "_NAME_": "名称",
                        "_PARENT_": "所属"
                    },
                    "库存": {
                        "_ID_": "编号",
                        "_INTYPE_": "设备所属类别",
                        "_PRODUCT_": "产品库"
                    },
                    "虚拟机": {
                        "_ID_": "编号",
                        "_NAME_": "名称",
                        "_PARENT_": "所属"
                    }
                },
                "relationPool": {
                    "建筑": {
                        "_PARENT_->属于": ["园区"]
                    },
                    "楼层": {
                        "_PARENT_->属于": ["建筑"]
                    },
                    "房间": {
                        "_PARENT_->属于": ["楼层"]
                    },
                    "组": {
                        "_PARENT_->属于": ["房间"]
                    },
                    "漏水线": {
                        "_PARENT_->属于": ["房间", "楼层"]
                    },
                    "放样物体": {
                        "_PARENT_->属于": ["园区", "建筑", "房间", "楼层"]
                    },
                    "放样物体集合": {
                        "_PARENT_->属于": ["园区", "建筑", "房间", "楼层"]
                    },
                    "机柜": {
                        "_PARENT_->属于": ["房间", "组"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "架式设备": {
                        "_PARENT_->属于": ["机柜"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "刀片": {
                        "_PARENT_->属于": ["机柜"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "独立设备": {
                        "_PARENT_->属于": ["房间", "组"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "门": {
                        "_PARENT_->属于": ["房间"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "板卡": {
                        "_PARENT_->属于": ["架式设备", "独立设备"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "小品": {
                        "_PARENT_->属于": ["房间", "楼层", "组"]
                    },
                    "漏水线": {
                        "_PARENT_->属于": ["组", "房间"],
                        "_PRODUCT_->附加": ["产品库"]
                    },
                    "配线": {
                        "_P1_->连接": ["架式设备", "独立设备", "板卡"],
                        "_P2_->连接": ["架式设备", "独立设备", "板卡"]
                    },
                    "便签": {
                        "_FID_->便签": ["用户"],
                        "_TID_->便签": ["建筑", "楼层", "房间", "组", "独立设备", "机柜", "架式设备", "用户"]
                    },
                    "任务单": {
                        "_UID_->任务": ["用户"]
                    },
                    "用户": {
                        "_ID_-设备组": {"设备组":"1212","12":"125566"},
                        "_ID_-角色": ["角色"]
                    }
                }
            };
			/**
			 * 判断类型
			 */
		    function type(obj){ 
		        switch(obj){ 
		            case null: 
		                return "null"; 
		            case undefined: 
		                return "undefined"; 
		        } 
		        var s=Object.prototype.toString.call(obj); 
		        switch(s){ 
		           case "[object String]": 
		               return "string"; 
		           case "[object Number]": 
		               return "number"; 
		           case "[object Boolean]": 
		               return "boolean"; 
		           case "[object Array]": 
		               return "array"; 
		           case "[object Date]": 
		               return "date"; 
		           case "[object Function]": 
		               return "function"; 
		           case "[object RegExp]": 
		               return "regExp"; 
		           case "[object Object]": 
		               return "object"; 
		           default: 
		               return "object"; 
		       } 
		   }  
			/**
			 * 树结构
			 * @param {Object} nodes
			 * @param {Object} box
			 */
			function jpTree(nodes,box){
				var tree = nodes;
				for(var key in tree){
					var temp = tree[key];
					if(type(temp)=="string"||type(temp)=="number"){
						if (box === undefined) {
							$("#treeNode").append("<li>"+key+"=>"+temp + "</li>");
						}else{
							$(box).append("<li>"+key+"=>"+ temp + "</li>");
						}
					}else if(type(temp)=='array'){
						if(box===undefined){
							$("#treeNode").append("<li><p>"+key+"</p><ul class='treeNodeArray"+key+"'></ul></li>");
							for(var j = 0; j < temp.length; j++){
								$(".treeNodeArray"+key).append('<li>'+temp[j]+'</li>');
							}
						}else{
							for(var j = 0; j < temp.length; j++){
								$(box).append('<li>'+key+'=>'+temp[j]+'</li>');
							}
						}
						jpTree(temp,'.treeNodeArray'+key);
					}else if(type(temp)=="object"){
						if (box === undefined) {
							$("#treeNode").append("<li><p>" + key + "</p><ul class='treeNodeObject" + key + "'></ul></li>");
						}else{
							$(box).append("<li><p>" + key + "</p><ul class='treeNodeObject" + key + "'></ul></li>");
						}
						jpTree(temp,'.treeNodeObject'+key);
					}else{
							
					}
				}
			}
			jpTree(nodes);
			$("#left").css({"height":$(window).height()-20,"overflow":"auto"});
        </script>
    </body>
</html>

转载于:https://my.oschina.net/parker/blog/132336

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值