在jstree中获取子节点的直接父节点

3

我希望在不点击“树形结构”时,能够检索出“子节点”的父节点。

data.inst._get_parent(data.rslt.obj).attr("id");

当我们点击“child nodes”时,上述命令可以给出其直接父节点。

是否有一种方法可以在不点击“child node”的情况下获取“parent node”?

祝好, Praque M


你可以使用jQuery的.parent()和.parents()函数来获取父对象。 - yoku2010
3个回答

5

在较新版本中,“data.inst”已更名为“data.instance”。这使得找到解决方案变得困难。

data.instance.get_parent(data.node)返回父级的字符串ID(对我来说非常意外)。要获取父级,我必须在字符串ID上调用data.instance.get_node()

data.instance.get_parent(data.node)也可以通过data.node.parent访问。

示例:

$('#MaterialCollectionTree').on('activate_node.jstree', function(e, data) {
  if(data.instance.is_leaf(data.node)) {
    alert("Leaf: " + data.node.text);
    alert("Parent: " +  data.instance.get_node(data.node.parent).text);
  }
});

2

这个问题有点复杂


parent_node = $.jstree._reference('#tree_id')._get_parent(n);

变量parent_node是一个jquery对象,因此该命令
parent_node.attr("something");

是相同的意思

$("#parent_node_id").attr("something");

1

对于任何想要在任何时候(没有事件触发:例如没有选择)仅查找特定节点的父ID的人,如果您拥有节点ID,则最简单的方法是:

$('#your_tree_id').jstree().get_parent($("#your_node_id"));

(将“your_tree_id”替换为您的树ID,“your_node_id”替换为您的节点ID)


这很简单,而且效果非常好。 - adatadoc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接