获取已检查和未确定的节点

时间:2016-02-06 11:19:49

标签: javascript jstree

我在jstree中选择了一个节点。我可以获得所选节点的json值。但问题是,我想要子节点的父节点,直到root

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码执行此操作。查看演示 - Fiddle

   function getParentNode(node) {
       return $('#tree').jstree().get_parent(node);
   }

   var nodes = $('#tree').jstree().get_selected('full'), parentNodes = [], parentTexts = [];

   nodes.forEach( function(node) {
      var parentNode = getParentNode(node);
      while (parentNode && parentNode !=='#') {
            if (parentNodes.indexOf(parentNode) === -1 ) { 
              parentNodes.push( parentNode );
              parentTexts.push( $('#tree').jstree().get_node(parentNode).text );
          }
          parentNode = getParentNode(parentNode);
      }
 })

<强>更新

您使用的代码可能如下所示:

var checked_ids = [], checked_ids1 = [];
$("#temporary1").find(".jstree-undetermined").each(
    function(i, element) {
        var nodeId = $(element).closest('.jstree-node').attr("id");
        // alert( nodeId );
        checked_ids.push( nodeId );
        checked_ids1.push( $('#temporary1').jstree().get_node( nodeId ).text );
    }
);

答案 1 :(得分:0)

尝试使用jstree的get_path。我下面的操作方法将返回控制台,其中包含所选节点的父级数组。

   * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array)
        $('#jstree').jstree().on('changed.jstree', function(e, data) {
            console.log(data.instance.get_path(data.node, undefined, true));
        });