Te sugerimos que revises esta resolución en un ambiente controlado antes de enviarlo a producción, un saludo.
Utilizar parents
en jQuery para obtener todos los padres, filtrando por li
porque todos los elementos del árbol son li
en jstree
prueba esto:
var parents = data.rslt.obj.parents("li");
Y para uso de los niños children
en jQuery, así:
var children = data.rslt.obj.parent().find('li');
EDITAR Usando lo anterior, aquí se explica cómo obtener todos los padres e hijos y ponerlos en todos un array para cada:
Padres:
var parents = [];
data.rslt.obj.parents("li").each(function ()
parents.push( id: $(this).attr("id"), description: $(this).children("a").text() );
);
Niños:
var children = [];
data.rslt.obj.find("li").each(function ()
children.push( id: $(this).attr("id"), description: $(this).children("a").text() );
);
1 solución más fácil
.get_path ( node , id_mode )
devolver la ruta a un nodo, ya sea como un array de identificaciones o como array de nombres de nodos.
mixed nodo: puede ser un nodo DOM, un nodo jQuery o un selector que apunta a un elemento dentro del árbol, cuya ruta queremos.bool id_mode: si se establece en true Se devuelven ID en lugar de los nombres de los padres. El valor predeterminado es false.
// To get path [ID or Name] from root node to selected node
var ids = data.inst.get_path('#' + data.rslt.obj.attr('id'),true);
// Returns IDs from root to selected node
var names = data.inst.get_path('#' + data.rslt.obj.attr('id'),false);
// Returns Name's from root to selected node
alert("Path [ID or Name] from root node to selected node = ID's = "+ids+" :: Name's = "+names);
Si estás contento con lo expuesto, eres capaz de dejar un tutorial acerca de qué le añadirías a esta noticia.