Używam jsTree jquery pluginjstree plugin jQuery - Get wszystkie dzieci i sub podrzędnych węzłów rodzica
Próbuję pobrać wszystkie węzły i węzły podrzędne wybranego rodzica. Ale jakoś nie działa, chyba że używam rekursji. Czy jsTree ma lepszy sposób?
Używam jsTree jquery pluginjstree plugin jQuery - Get wszystkie dzieci i sub podrzędnych węzłów rodzica
Próbuję pobrać wszystkie węzły i węzły podrzędne wybranego rodzica. Ale jakoś nie działa, chyba że używam rekursji. Czy jsTree ma lepszy sposób?
znalazłem sposób, aby to zrobić. W moim przypadku używam xml jako źródła danych dla drzewa. Wiążę zdarzenie open_node z jstree w następujący sposób. Pamiętaj, że mimo że używam xml, wewnętrzna struktura jest taka jak danych html.
// jsTree Configuration hash
var jsTreeConfig = {};
$("#demo1").jstree(jsTreeConfig)
.bind('open_node.jstree', function(e, data) {
var parentObj = data.rslt.obj; // parent object
var jstreeInstance = data.inst; // jstree instance
$(data.rslt.obj).find("li").each(function(idx, listItem) {
var child = $(listItem); // child object
// do Stuff with child which can be any level of hierarchy depth
// ...
});
});
Przepraszamy za biedne wcięcie. jstree ({...}) ma wszystkie opcje do utworzenia instancji jstree. Aby to działało, potrzebujesz preinstalowanego jQuery. – Sid
Można uzyskać pełny drzewo wszystko za pomocą tego przełącznika: $("#demo1").find("li > a")
Dzięki @fliespl, ale potrzebuję tylko węzłów podrzędnych danego rodzica. Zorientowałem się, jak to zrobić. Zamierzam opublikować odpowiedź wkrótce po przetestowaniu go. – Sid
Próbowałem poprzednie rozwiązanie i nie działa z najnowszą wersją jsTree (v3.2.1). Poniżej znajduje się zaktualizowane rozwiązanie, aby uzyskać węzły podrzędne i podrzędne węzła rodzica.
$("#myTree").bind('selected_node.jstree', function (node, data) {
var selectedNodes = $("#myTree").jstree(true).get_json(data.node.id, { flat: true });
for (var i = 0; i < selectedNodes.length; i++) {
// Apply logic here
// ...
// ...
// ...
}
});
P.S. - Odpowiedziałem na moje pytanie tutaj. – Sid