如何在jstree中选择父项时获取子项的路径

时间:2014-05-23 12:56:59

标签: javascript jstree

我选择父级时尝试获取父节点和子节点的路径。要获取所选节点的路径,我执行了以下操作:

 $("#jstree_demo_div").jstree({
    "core" : {
       "data" : {
          "type" : "POST",
          "url" : "myurl.php",
          "data" : function (node) {
                  return { "id" : node.id };
              }
       },
       "dataType" : "json",
    },
    "plugins" : [ "wholerow", "checkbox", "types" ]
 })
 .on("changed.jstree", function (e, data) {
    var path = $("#jstree_demo_div").jstree(true).get_path(data.node,"/");
    console.log ("path = " + path + "\n");
 });""

但我不知道如何让孩子的父母走上正轨。

我试图获取孩子父母的身份,然后应用split()函数获取ID,然后应用get_path()但这是不工作,因为它说split不是一个功能。

var test = data.node.children;
var spt_tst = test.split(',');
alert("node = " + spt_tst[0]);

我做错了什么?

****编辑****

我的树就像在图像中: enter image description here

我想要做的是:选择文件夹 images 并获取所有内容的路径,例如,我想获取内部内容的路径。 xvpics 文件夹和其他文件夹。因为我必须将这些路径发送到.txt文件。

1 个答案:

答案 0 :(得分:4)

data.node.children返回一个数组,您可以通过索引访问该数组。要获得第i个元素,请使用data.node.children[i]。例如,要迭代data.node的所有子项,请执行以下操作:

for (var i = 0; i < data.node.children.length; i++) {
  //for example call get_path of the child
  var path = $(\'#jstree_demo_div\').jstree(true).get_path(data.node.children[i],"/");
}

我希望我理解你,这就是你要找的。

编辑:您可以使用children_d获取节点的所有子节点。甚至是孩子的孩子。

for (var i = 0; i < data.node.children_d.length; i++) {
  //for example call get_path of the child
  var path = $(\'#jstree_demo_div\').jstree(true).get_path(data.node.children_d[i],"/");
}

希望我这次能帮到你。如果没有,请告诉我。