jstree 获取数据作为 treeLike 数组

jstree get data as treeLike array

假设您有以下类型的数据:

{
    children: [{id: 1}, {id:2}, {id:3}],
    id: 85,
    text: "myParent
}

现在我想使用 jstree 获取这些数据,以便所选节点给我这样的结果:

    result = [{id: 85, text: 'myParent', children: [{id: 1}]}]

在上面的例子中我选择了node 1

基本上它给了我父数组,然后是子数组中的选定子数组。

到目前为止,我尝试了以下操作:

$('#dataTree').on("changed.jstree", function (e, data) {
    $('#dataTree').jstree(true).get_json('#', {flat:false})
})

但是上面的代码并不return只针对选中的节点

所以我想问你们的问题是我将如何做这件事?

您必须指定选定的节点,而不是使用 # 这是根节点。

所以你可以像下面那样做。还要检查演示 - Fiddle Demo.

.on("changed.jstree", function (e, data) {
    var result = data.selected.map(function(node){
        return $('#dataTree').jstree(true).get_json(node, {flat:false});
    });
    // ... do something with result array
});