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

Get checked and undetermined nodes

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

您可以使用以下代码执行此操作。检查演示 - 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 );
    }
);

尝试使用 jstree 的 get_path。我在下面的方式将 return 到控制台所选节点的父数组。

   * 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));
        });