遍历jsTree树

时间:2015-04-11 17:21:13

标签: javascript jstree

示例数据:

1:A
    2:Aa
    3:Ab
    4:Ac
        5:Aaa
6:B
    7:Ba
    8:Bb
        9:Baa
        10:Bab

我试图遍历一个jsTree树并获取每个项目的路径,包括父项和根,所以在完成遍历之后,我最终得到了这个输出:

[
    10: ["/6/8/10", "Bab",
    8: ["/6/8", "Bb",
    5: ["/1/4/5", "Aaa"],
    etc...
]

我该怎么做?

目前,我有这个:

$('.jstree-node,.jstree-leaf').each(function(){
    var id   = ($(this).attr('id').split("_"))[0];
    var text = $(this).children('a').text();
    $('#textarea').append(id + " - " + text + "\n");
});

给出了每个项目的ID和文本,但是

  • 感觉很难看。我的直觉告诉我这可以用jsTree的API
  • 完成
  • 我不确定如何获取每个项目的路径。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案:

$('.jstree-node,.jstree-leaf').each(function(){
    var id   = $(this).attr('id');
    var text = $(this).children('a').text();
    var path = tree.get_path( tree.get_node($(this)), "/", true);
    console.log( (id.split("_"))[0] + " - " + text + " -> (" + path + ")");
});

答案 1 :(得分:0)

你试过get_json吗?见docs