2014-08-28 50 views
5

我想通过孩子得到父节点的JSON对象是 我是从客户端得到JSON是一个多层次的目录层次结构 层次就像获取父节点从JSON对象的jQuery

Root 
    - 
    -Folder-1 
      -folder1(a) 
      -folder1(b) 
    -folder-2 
    -folder-3 
      -folder3(a) 

什么我要的是, 当我把folder3(a)的ID就应该给我folder-3的ID和名称

下面是实际JSON对象小提琴http://jsfiddle.net/jftrg9ko/

回答

3

无论如何你必须搜索树,所以只要记得父母,并返回,如果你找到了正确的孩子。

我摆弄的东西: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); 
    } 
} 
+0

这正是我一直在寻找,非常感谢你.. :) – 2014-08-28 06:56:01