JavaScript jsTree speichern

x3ntar

Yet another User
ID: 118334
L
28 Mai 2006
386
17
Hallo!

Ich hab ein kleines Problemchen.
Habe einen Baum wie folgt:
PHP:
<div id="baum">
<ul>
  <li id="e_1">Element A</li>
  <li id="e_2">Element B</li>
  <li id="e_3">Element C</li>
</ul>
</div>

Diesen Baum habe ich mit jsTree und jQuery dynamisch gemacht.
Nun schaff ich es aber nicht, den Baum abzuspeichern!

Habe es wie folgt probiert:
PHP:
var myTree = $("#baum").tree();

$("#save").click(function () {
 // Save Tree
 myTreeSave = myTree.get();
 alert(myTreeSave); // gibt Object HTMLDivElement aus
 parsed = parseTree(myTreeSave.children("ul:first"));
});

Allerdings kann ich sonst auf nichts weiteres zugreifen!
Also ein myTreeSave.children("ul") geht nicht, da sind angeblich keine Elemente drin! Würde das gern alles in einem Array haben, dazu habe ich eigentlich folgende Funktion:

PHP:
function parseTree(ul){
    var tags = [];

    ul.children("li").each(function(){
        var subtree =    $(this).children("ul");
        if(subtree.size() > 0)
            tags.push([$(this).attr("id"), parseTree(subtree)]);
        else
            tags.push([$(this).attr("id")]);
    });

    return tags;
}

Was mache ich denn falsch?
Schonmal danke für die Hilfe!
 
.get() sprengt dein jQuery-Objekt. Übergib einfach myTree an die Funktion und sie sollte schon mal mehr machen, als sie jetzt tut.
 
Vielen Dank,
hat mir sehr geholfen!

Endlich kann ich meinen Tree wieder wie gewohnt abspeichern.
Sonst müsste ich das mit callbacks machen, aber wollte ja mit einem Klick alles abspeichern und nicht nach jeder Aktion.