jsTree : How to get all nodes from jstree?
From documentation:
.get_json ( node , li_attr , a_attr )
This function returns an array of tree nodes converted back to JSON.
More info about same function from this doc:
This function traverses the whole tree and exports it as JSON. Refer do the data sources section to see the format of the output.
If you specify a node as the first argument, only that node and its children are included in the export, otherwise the whole tree is exported.
Just search and you shall find! :)
Solution with example :)
var xmlString = $("#tree").jstree("get_xml");
var xmlDOM = $.parseXML(xmlString);
var IDList =[];
var items = $(xmlDOM).find('root item');
$.each (items, function(key, val){
IDList.push($(val).attr('id'));
})
IDList.pop();
xmlString =
<root>
<item id="A" parent_id="0" state="close">
<content><name>Charles Madigen</name></content>
</item>
<item id="A1" parent_id="A" state="close">
<content><name>Charles Madigen</name></content>
</item>
.
.
</root>
Output: Root, A, A1, A1.1, A1.2, A2, A2.1, A2.2, B, B1, B2, C, C1, C1.1, C2.2
:)
You can traverse each node element and put it's id in an array via:
var idList = [];
var jsonNodes = $('#tree').jstree(true).get_json('#', { flat: true });
$.each(jsonNodes, function (i, val) {
idList.push($(val).attr('id'));
})