2012-10-16 46 views
2

我要检索的child node的家长无点击tree ..获取子节点的直接父在jstree

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

上面的命令给我,当我们点击child nodes直接父。

有没有办法在没有点击child node的情况下获得parent node

问候, Praque中号

+0

您可以使用.parent()和。家长(的jQuery)函数来获得父对象。 – yoku2010

回答

0

根据您的标签:

theparent = $('element').parent()

+0

jsTree在内存中有一个数据结构来存放节点。 DOM包含元素。你的答案建议如何获取父DOM元素。 OP询问如何获取数据结构父节点,这与DOM父节点不同。实际上,jsTree节点可以隐藏,而不是在DOM中,但仍然是一个节点,仍然可以是父节点。 – barrypicker

2

这是一个比较复杂那么

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

变量PARENT_NODE是一个jQuery对象所以命令

parent_node.attr("something"); 

相同

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

看来 “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); 
    } 
});