我试图通过child获取json对象中的父节点 我从客户端获取的json是一个多级目录层次结构 层次结构就像
Root
-
-Folder-1
-folder1(a)
-folder1(b)
-folder-2
-folder-3
-folder3(a)
我想要的是,
当我提出folder3(a)
的ID时,它应该会给我folder-3
的ID和名称
这是实际json对象的小提琴 http://jsfiddle.net/jftrg9ko/
答案 0 :(得分:4)
你必须在树中搜索,所以只要记住父母,如果你找到了合适的孩子就回来了。
我摆弄了一些东西:http://jsfiddle.net/jftrg9ko/1/
function getParent(tree, childNode)
{
var i, res;
if (!tree || !tree.folder) {
return null;
}
if( Object.prototype.toString.call(tree.folder) === '[object Array]' ) {
for (i in tree.folder) {
if (tree.folder[i].id === childNode) {
return tree;
}
res = getParent(tree.folder[i], childNode);
if (res) {
return res;
}
}
return null;
} else {
if (tree.folder.id === childNode) {
return tree;
}
return getParent(tree.folder, childNode);
}
}
答案 1 :(得分:0)
获得所有的出场次数
var pars,k,v,chk;
pars = [];
$.each(json,function(k,v){
chk = k;
$.each(v,function(k,v)
if(k === node){
pars.push(chk);
}
})
})