jsTree : How to get IDs of selected nodes to root node in jsTree?
1 More easy solution
.get_path ( node , id_mode )
return the path to a node, either as an array of IDs or as an array of node names. mixed node : This can be a DOM node, jQuery node or selector pointing to an element within the tree, whose path we want.bool id_mode : If set to true IDs are returned instead of the names of the parents. Default is 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);
Use parents
in jQuery to get all parents, filtering out by li
because all tree items are li
in jstree
, try this:
var parents = data.rslt.obj.parents("li");
And for children use children
in jQuery, like so:
var children = data.rslt.obj.parent().find('li');
EDIT Using the above, here's how to get all parent and children and put them in all an array for each:
Parents:
var parents = [];
data.rslt.obj.parents("li").each(function () {
parents.push({ id: $(this).attr("id"), description: $(this).children("a").text() });
});
Children:
var children = [];
data.rslt.obj.find("li").each(function () {
children.push({ id: $(this).attr("id"), description: $(this).children("a").text() });
});