2014-08-28 5 views
5

Ich versuche, übergeordnete Knoten in JSON-Objekt mit einem Kind es Die json i immer bin von Client ist eine Multi-Level-Verzeichnishierarchie die Hierarchie ist wieErsten Elternknoten von JSON-Objekt mit JQuery

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

zu bekommen, was ich will, ist, wenn ich folder3(a) ‚s id sollte es mir geben folder-3‘ setzen s ID und Name

Hier ist die Geige mit tatsächlichen json Objekthttp://jsfiddle.net/jftrg9ko/

Antwort

3

Sie müssen den Baum trotzdem durchsuchen, also denken Sie nur an den Elternteil und geben Sie zurück, wenn Sie das richtige Kind gefunden haben.

Ich fummelte etwas: 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

das ist genau das, was ich suchte, danke sehr viel .. :) –

Verwandte Themen