EasyUI Forum
June 30, 2024, 01:31:43 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Get parent node!!  (Read 30687 times)
varonica
Full Member
***
Posts: 106


View Profile
« on: December 28, 2012, 12:29:27 AM »

Hello sir, Im trying to use "getParent" method of tree, but how can i get a parent of parent node ? I did try with the following code:
Code:
onSelect: function(node){ 
      $('#tree').combotree('tree').tree('getParent', node.target).tree('getParent', node.target);
}
Please help me sir Sad Cry Cry
Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: December 28, 2012, 12:47:38 AM »

Please try the code below.
Code:
var t = $('#tree').combotree('tree'); // get the tree object
var p = t.tree('getParent', node.target);
if (p){
  p = t.tree('getParent', p.target);
}
alert(p.text);
Logged
varonica
Full Member
***
Posts: 106


View Profile
« Reply #2 on: December 28, 2012, 01:34:12 AM »

Thanks sir, it works!  But Is there a way to get all parents of parent node until a root node ?
Logged
patana
Jr. Member
**
Posts: 50


View Profile
« Reply #3 on: January 02, 2013, 07:35:23 AM »

Please, take a look at it:
Code:
<select id="cc" class="easyui-combotree" data-options="url:'../tree/tree_data1.json'" multiple style="width:200px;"></select> 
<script>
var nodes = $('#cc').tree('getChecked', 'indeterminate');
</script>
Hope it works as your desire!
Logged
nyr_jack
Newbie
*
Posts: 31


View Profile
« Reply #4 on: January 05, 2013, 01:11:00 AM »

You can use recursive algorithm, I shared my some codes in General Discussion of forum , I hope it can help you!
Logged
patana
Jr. Member
**
Posts: 50


View Profile
« Reply #5 on: January 05, 2013, 09:37:21 PM »

Could you please kindly provide a link so it'd be much easier for the owner or passer-by!!!
Logged
nyr_jack
Newbie
*
Posts: 31


View Profile
« Reply #6 on: January 05, 2013, 10:46:51 PM »

http://www.jeasyui.com/forum/index.php?topic=1047.0

Please try it , maybe can help you!
Logged
varonica
Full Member
***
Posts: 106


View Profile
« Reply #7 on: January 08, 2013, 02:58:24 AM »

Thanks guys, I love you!!!  Kiss Kiss Kiss Kiss Kiss Kiss Kiss
Logged
varonica
Full Member
***
Posts: 106


View Profile
« Reply #8 on: January 11, 2013, 08:16:30 PM »

Hi nyr_jack, your function is really helpful but unluckily i still don't understand some param that were used in getParentArray(). Could you kindly provide an example ? Sad
Code:
/**
 * 获得该节点的所有父节点数组(get all parents of current node)
 * @param basicTree
 * @param node
 * @param nodeLevel
 * @param nodeparentArry
 * @returns
 */
function getParentArry(basicTree,node,nodeLevel,parentArry){
   if(nodeLevel == 1){
      return parentArry;
   }else{
      nodeLevel -= 1;
      var parent = $(basicTree).tree('getParent',node.target);
      parentArry.unshift(parent);
      return getParentArry(basicTree,parent,nodeLevel,parentArry);
   }
}
I just want to get all the parent of node we selected. Please help me Sad Cry
Logged
varonica
Full Member
***
Posts: 106


View Profile
« Reply #9 on: January 11, 2013, 08:24:05 PM »

Anybody Please Help!!!!  Cry Cry Cry Cry
Logged
nyr_jack
Newbie
*
Posts: 31


View Profile
« Reply #10 on: January 12, 2013, 06:13:32 AM »

I wrote a sample, you can only select one node, and when you click button you can get all parents of this seleced node. bellow the main code:

html:

<!-- This button's 'onclick' function need a param, this param specify the tree id -->
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-ok'" onclick='getAllParentsOfNode("#tree")'>Get all parents of node</a>
<br><br><br>
<ul id="tree" class="easyui-tree" data-options="url:'tree_data1.json',animate:true,checkbox:false"></ul>

javascript:

/**
 * 扩展方法,获得树的节点等级
 */
$.extend($.fn.tree.methods,{
    getLevel: function(jq, target){
        return $(target).find('span.tree-indent,span.tree-hit').length;
    }
});

/**
 * to get a array of parents of selected node
 * @param tree - the tree you want to select a node
 * @param selectedNode - the node that you select
 * @param nodeLevel - the level of selected node
 * @param nodeparentArry - use a array to record all parents of selected node
 * @returns
 */
function getParentArry(tree,selectedNode,nodeLevel,parentArry){
   //end condition: level of selected node equals 1, means it's root
   if(nodeLevel == 1){
      return parentArry;
   }else{//if selected node isn't root
      nodeLevel -= 1;
      //the parent of the node
      var parent = $(tree).tree('getParent',selectedNode.target);
      //record the parent of selected to a array
      parentArry.unshift(parent);
      //recursive, to judge whether parent of selected node has more parent
      return getParentArry(tree,parent,nodeLevel,parentArry);
   }
}

function getAllParentsOfNode(tree){   
   var node = $(tree).tree('getSelected');
   alert("The selected node is: " + node.text);
   var nodeLevel = $(tree).tree('getLevel',node.target);
   var parentArry = new Array();
   var parents = getParentArry(tree,node,nodeLevel,parentArry);
   if(parents.length > 0){
      var parentStr = "";
      for(var i = 0; i < parents.length; i++){
         parentStr += parents.text + " -> ";
      }
   }
   alert("All parents of selected node:\n" + parentStr);
}
Logged
varonica
Full Member
***
Posts: 106


View Profile
« Reply #11 on: July 03, 2013, 02:41:42 AM »

Thanks nyr_jack, Your function works great, but there's a tiny mistake in it.
Code:
function getAllParentsOfNode(tree){   
   var node = $(tree).tree('getSelected');
   alert("The selected node is: " + node.text);
   var nodeLevel = $(tree).tree('getLevel',node.target);
   var parentArry = new Array();
   var parents = getParentArry(tree,node,nodeLevel,parentArry);
   if(parents.length > 0){
      var parentStr = "";
      for(var i = 0; i < parents.length; i++){
         parentStr += parents[i].text + " -> "; // after modify parents[i] it works :)
      }
   }
   alert("All parents of selected node:\n" + parentStr);
}
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!