Mit Javascript hierarchische Liste aus Arrays erstellen.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mit Javascript hierarchische Liste aus Arrays erstellen.

    Hallo liebe Leute

    ich habe ein Array was wie folgt aussieht:

    Quellcode

    1. var vorhanden = new Array();
    2. vorhanden["KartenID"] = new Array();
    3. vorhanden["Themengebiet"] = new Array();
    4. vorhanden["Teilgebiet"] = new Array();
    5. vorhanden["Buch"]= new Array();
    6. vorhanden["Kapitel"] = new Array();
    7. vorhanden["Wissensstufe"] = new Array();
    8. vorhanden["Titel"] = new Array();
    9. vorhanden["Frage"] = new Array();
    10. vorhanden["Antwort"] = new Array();


    Dort sind dann im "inneren" Array die Karteikarten gespeichert. Also vorhanden["Themengebiet"][0] ist das Themengebiet in das die erste Karteikarte gehört.


    Jetzt würde ich gerne eine Liste machen wie folgt:

    Quellcode

    1. <ul>
    2. <li>Themengebiet 1</li>
    3. <ul>
    4. <li>Teilgebiet 1</li>
    5. <ul>
    6. <li>Buch 1</li>
    7. <ul>
    8. <li>Kapitel 1</li>
    9. <ul>
    10. <li>Titel 1</li>
    11. <li>Titel 2</li>
    12. </ul>
    13. <li>Kapitel 2</li>
    14. <ul>
    15. <li>Titel3</li>
    16. </ul>
    17. </ul>
    18. </ul>
    19. </ul>
    20. </ul>
    Alles anzeigen



    Also hierarchisch geordnet


    Ich habe dann eine Stunde an verschachtelten for-Schleifen gesessen, die dann aber unter jedem Unterpunkt den Unterunterpunkt aller Karteikarten gesetzt haben. (hoffe ihr versteht was ich meine, auf jeden Fall war es vergeudete Zeit)


    Jetzt habe ich folgenden Ansatz mit jQuery:


    Quellcode

    1. for(var i=0; i < vorhanden["KartenID"].length; i++){
    2. var kinder=$("#ListeVorhandeneKarteikartenKarteierstellung").children();
    3. for(var j=0;j <= kinder.length;j++) {
    4. var enkel=kinder[j].children();
    5. alert (enkel);
    6. if(enkel.html()==vorhanden["Themengebiet"][i]){themengebietgibtesschon=1;}
    7. }
    8. if(themengebietgibtesschon==0){
    9. $("#ListeVorhandeneKarteikartenKarteierstellung").append("<li id=\"ListeVorhanden" + vorhanden["Themengebiet"][i] + "\">" + vorhanden["Themengebiet"][i] + "</li>")
    10. }else{themengebietgibtesschon=0;}
    11. }
    Alles anzeigen



    Funktioniert aber nicht. (Ja das wären bis jetzt nur die Themengebiete (aber nicht doppelt). Aber in meinem Kopf herrscht gerade Kuddelmuddel


    habt ihr vielleicht iene Idee? Am Besten einen ganz einfachen neuen Ansatz :D