2016-10-20 6 views
0

ich auf einer rekursiven Funktion arbeiten:
hasChildNodes immer wieder zurückkehren undefined

function Recursive(JSObject) { 

    for(let JSChild of JSObject.children) { 
     console.log(JSChild.name); 
     console.log(JSChild.hasChildNodes); 
     /*if(JSChild.hasChildNodes) { 
      Recursive(JSChild); 
     }*/ 
    } 
} 

Leider ist die Zeile:

console.log (JSChild.hasChildNodes);

immer zurück "undefined", während einige Knoten ein oder mehrere Kinder haben.
Darüber hinaus verwendet w3school einige Klammern am Ende des hasChildNodes aber wenn ich es tue mein Browser (Chrome) zurückgeben diesen Fehler:

JSChild.hasChildNodes ist keine Funktion

ich nicht tun verstehe, warum nichts funktioniert.
Ich wäre dankbar, wenn Sie mir helfen können.

EDIT: (Objekt im JSON-Format)

{ 
    "dir":"", 
    "name":"myProject", 
    "type":"folder", 
    "children":[ 
    { 
     "dir":"myProject", 
     "name":"css", 
     "type":"folder", 
     "children":[ 
     { 
      "dir":"myProject/css", 
      "name":"main.css", 
      "type":"file" 
     }, 
     { 
      "dir":"myProject/css", 
      "name":"menu.css", 
      "type":"file" 
     }, 
     { 
      "dir":"myProject/css", 
      "name":"user.css", 
      "type":"file" 
     } 
     ] 
    }, 
    { 
     "dir":"myProject", 
     "name":"fonts", 
     "type":"folder" 
    }, 
    { 
     "dir":"myProject", 
     "name":"images", 
     "type":"folder", 
     "children":[ 
     { 
      "dir":"myProject/images", 
      "name":"logo.png", 
      "type":"file", 
      "corrupted":true 
     } 
     ] 
    }, 
    { 
     "dir":"myProject", 
     "name":"index.html", 
     "type":"file" 
    }, 
    { 
     "dir":"myProject", 
     "name":"js", 
     "type":"folder", 
     "children":[ 
     { 
      "dir":"myProject/js", 
      "name":"controllers", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/js/controllers", 
       "name":"core", 
       "type":"folder", 
       "children":[ 
       { 
        "dir":"myProject/tempjs/controllerslates/core", 
        "name":"menu.js", 
        "type":"file" 
       } 
       ] 
      }, 
      { 
       "dir":"myProject/js/controllers", 
       "name":"errors", 
       "type":"folder", 
       "children":[ 
       { 
        "dir":"myProject/js/controllers/errors", 
        "name":"error.js", 
        "type":"file" 
       } 
       ] 
      }, 
      { 
       "dir":"myProject/js/controllers", 
       "name":"home", 
       "type":"folder", 
       "children":[ 
       { 
        "dir":"myProject/js/controllers/home", 
        "name":"homePage.js", 
        "type":"file" 
       } 
       ] 
      }, 
      { 
       "dir":"myProject/js/controllers", 
       "name":"home", 
       "type":"folder", 
       "children":[ 
       { 
        "dir":"myProject/js/controllers/user", 
        "name":"list.js", 
        "type":"file" 
       }, 
       { 
        "dir":"myProject/js/controllers/user", 
        "name":"login.js", 
        "type":"file" 
       }, 
       { 
        "dir":"myProject/js/controllers/user", 
        "name":"profile.js", 
        "type":"file" 
       }, 
       { 
        "dir":"myProject/js/controllers/user", 
        "name":"subscribe.js", 
        "type":"file" 
       } 
       ] 
      } 
      ] 
     }, 
     { 
      "dir":"myProject/js", 
      "name":"libs", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/js/libs", 
       "name":"handlebars.min.js", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/js/libs", 
       "name":"jquery.min.js", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/js/libs", 
       "name":"require.min.js", 
       "type":"file", 
       "corrupted":true 
      } 
      ] 
     }, 
     { 
      "dir":"myProject/js", 
      "name":"main.js", 
      "type":"file" 
     }, 
     { 
      "dir":"myProject/js", 
      "name":"models", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/js/models", 
       "name":"menu.js", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/js/models", 
       "name":"user.js", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/js/models", 
       "name":"users.js", 
       "type":"file" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "dir":"myProject", 
     "name":"ressources", 
     "type":"folder" 
    }, 
    { 
     "dir":"myProject", 
     "name":"views", 
     "type":"folder", 
     "children":[ 
     { 
      "dir":"myProject/templates", 
      "name":"core", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/templates/core", 
       "name":"footer.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/core", 
       "name":"header.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/core", 
       "name":"menu.html", 
       "type":"file" 
      } 
      ] 
     }, 
     { 
      "dir":"myProject/templates", 
      "name":"errors", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/templates/errors", 
       "name":"error401.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/errors", 
       "name":"error403.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/errors", 
       "name":"error404.html", 
       "type":"file", 
       "corrupted":true 
      } 
      ] 
     }, 
     { 
      "dir":"myProject/templates", 
      "name":"home", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/templates/home", 
       "name":"homePage.html", 
       "type":"file" 
      } 
      ] 
     }, 
     { 
      "dir":"myProject/templates", 
      "name":"home", 
      "type":"folder", 
      "children":[ 
      { 
       "dir":"myProject/templates/user", 
       "name":"list.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/user", 
       "name":"login.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/user", 
       "name":"profile.html", 
       "type":"file" 
      }, 
      { 
       "dir":"myProject/templates/user", 
       "name":"subscribe.html", 
       "type":"file" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 
+0

Hinweis: [ 'hasChildNodes'] (https://developer.mozilla.org/en-US/docs/Web/API/Node/hasChildNodes) ist eine Methode, nicht eine Eigenschaft, und muss aufgerufen werden. – evolutionxbox

+0

Können Sie das 'JSObject' teilen, über das Sie iterieren? – evolutionxbox

+0

Wenn ich Ihnen im JSON-Format geben kann, hier ist es (in meinem ursprünglichen Post) – Lodec

Antwort

0

Schließlich werde ich

verwenden. if (typeof (enfant.children) == "Objekt")

um zu überprüfen, ob der Elternknoten Kinder hat.
Danke an die Leute, die auf meinen Beitrag geantwortet haben.

1

Object hat keine Eigenschaft oder Methode namens hasChildNodes es ein Verfahren zur Herstellung Node ist

+0

Ok ... Wie kann ich überprüfen, ob ein Knoten Kinder in meinem Code hat, anstatt hasChildNodes zu verwenden? – Lodec

Verwandte Themen