2012-10-16 47 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); 
    } 
});