2014-08-28 46 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