数据格式:var treeData=[
{"name":"剑侠世界",
"columns":[
{
"name":"新闻中心",
"columns":[
{
"name":"新闻",
"parentId":2
},
{
"name":"公告",
"parentId":2
}
],
"parentId":1
},
{
"name":"玩家文选",
"columns":[
{"name":"门派攻略","parentId":2},
{"name":"玩家心情","parentId":2}
],
"parentId":1
},
{
"name":"游戏资料",
"columns":[
{"name":"游戏资料0","parentId":2},
{"name":"游戏资料1","parentId":2}
],
"parentId":1
}
],
"parentId":0
},
{"name":"剑侠世界1",
"columns":[
{
"name":"新闻中心1",
"columns":[
{"name":"新闻1"},
{"name":"公告1"}
]
},
{
"name":"玩家文选1",
"columns":[
{"name":"门派攻略1"},
{"name":"玩家心情1"}
]
},
{
"name":"游戏资料1",
"columns":[
{"name":"游戏资料01"},
{"name":"游戏资料01"}
]
}
],
"parentId":0
}
];自己写了一个遍历算法,但是没有达到我想要得效果,把所有节点的数据都打印出来,请高手指教下,谢谢啦function creatHtml(obj,str){
var j,ob;
for(var i=0;i<obj.length;i++)
{
if(obj[i].name)
{
str+='<ul>'+obj[i].name+'<ul>\n';
for(j=0;j<obj[i]["columns"].length;j++)
{
if (obj[i].columns[j].name) {
str += ' <li>' + obj[i]["columns"][j].name + '</li>\n';
ob=obj[i]["columns"][j];
//alert(ob);
creatHtml(ob,str);
}
}
}
}
return str;
}//测试
alert(creatHtml(treeData,""));
{"name":"剑侠世界",
"columns":[
{
"name":"新闻中心",
"columns":[
{
"name":"新闻",
"parentId":2
},
{
"name":"公告",
"parentId":2
}
],
"parentId":1
},
{
"name":"玩家文选",
"columns":[
{"name":"门派攻略","parentId":2},
{"name":"玩家心情","parentId":2}
],
"parentId":1
},
{
"name":"游戏资料",
"columns":[
{"name":"游戏资料0","parentId":2},
{"name":"游戏资料1","parentId":2}
],
"parentId":1
}
],
"parentId":0
},
{"name":"剑侠世界1",
"columns":[
{
"name":"新闻中心1",
"columns":[
{"name":"新闻1"},
{"name":"公告1"}
]
},
{
"name":"玩家文选1",
"columns":[
{"name":"门派攻略1"},
{"name":"玩家心情1"}
]
},
{
"name":"游戏资料1",
"columns":[
{"name":"游戏资料01"},
{"name":"游戏资料01"}
]
}
],
"parentId":0
}
];自己写了一个遍历算法,但是没有达到我想要得效果,把所有节点的数据都打印出来,请高手指教下,谢谢啦function creatHtml(obj,str){
var j,ob;
for(var i=0;i<obj.length;i++)
{
if(obj[i].name)
{
str+='<ul>'+obj[i].name+'<ul>\n';
for(j=0;j<obj[i]["columns"].length;j++)
{
if (obj[i].columns[j].name) {
str += ' <li>' + obj[i]["columns"][j].name + '</li>\n';
ob=obj[i]["columns"][j];
//alert(ob);
creatHtml(ob,str);
}
}
}
}
return str;
}//测试
alert(creatHtml(treeData,""));
<div id="divmsg"></div>
<script>
var treeData=[
{"name":"剑侠世界",
"columns":[
{
"name":"新闻中心",
"columns":[
{
"name":"新闻",
"parentId":2
},
{
"name":"公告",
"parentId":2
}
],
"parentId":1
},
{
"name":"玩家文选",
"columns":[
{"name":"门派攻略","parentId":2},
{"name":"玩家心情","parentId":2}
],
"parentId":1
},
{
"name":"游戏资料",
"columns":[
{"name":"游戏资料0","parentId":2},
{"name":"游戏资料1","parentId":2}
],
"parentId":1
}
],
"parentId":0
},
{"name":"剑侠世界1",
"columns":[
{
"name":"新闻中心1",
"columns":[
{"name":"新闻1"},
{"name":"公告1"}
]
},
{
"name":"玩家文选1",
"columns":[
{"name":"门派攻略1"},
{"name":"玩家心情1"}
]
},
{
"name":"游戏资料1",
"columns":[
{"name":"游戏资料01"},
{"name":"游戏资料01"}
]
}
],
"parentId":0
}
]; function showAllNode(thejson){
for(var e in thejson){
var flag = false;// 当前元素是否是数组
for(var ex in thejson[e]){
flag = true;
}
if(flag){
showAllNode(thejson[e]);
}else if(thejson[e]){
document.getElementById("divmsg").innerHTML += e + "=" + thejson[e] + "<br/>";
}
}
}window.onload=function(){
showAllNode(treeData);
}
</script>
我调用的是jquery 返回的JSON数组。