(轉)EasyUI元件tree只展開根節點下的一級子節點或二級子節點
阿新 • • 發佈:2019-01-30
Easyui Tree外掛獲取子節點的時候用的getChildren方法,但是這個方法獲取到的節點卻是級聯獲取了子節點下的子節點,但是在有些時候,我們並不希望他返回這麼多。我們只想獲取目標節點的一級子節點,那麼就我們就需要擴充套件我們自己的方法了。
這裡我擴充套件了這個方法(getLeafChildren):
具體的用法和getChildren方法是一樣的,只是這個只返回目標節點的第一級子節點。
例把省市縣下拉列表展開到市級:
最後一塊是我自己的程式碼
這裡我擴充套件了這個方法(getLeafChildren):
$.extend($.fn.tree.methods,{ getLeafChildren:function(jq, params){ var nodes = []; $(params).next().children().children("div.tree-node").each(function(){ nodes.push($(jq[0]).tree('getNode',this)); }); return nodes; } });
具體的用法和getChildren方法是一樣的,只是這個只返回目標節點的第一級子節點。
例把省市縣下拉列表展開到市級:
function expandNode(){ var combotree_org=$('#admin_elecmg_activity_plan_orgNo').combotree('tree'); combotree_org.tree('collapseAll');//摺疊所有節點 /**方法一:根據省id展開**/ // var root=combotree_org.tree('getRoot');//獲取根節點 // combotree_org.tree('expand', root.target);//展開根節點 // var node = combotree_org.tree('find', 41101);//找到獲取國網河南省電力公司 // combotree_org.tree('expand', node.target);//展開國網河南省電力公司 /**方法二:由根開始遍歷一級一級的展開,展開到市級**/ var roots=combotree_org.tree('getRoots'),children=null,i,j; for(i=0;i<roots.length;i++){ combotree_org.tree('expand', roots[i].target); children=combotree_org.tree('getLeafChildren',roots[i].target); for(j=0;j<children.length;j++){ combotree_org.tree('expand', children[j].target); } alert(children.length); } /**展開到縣級**/ // var roots=combotree_org.tree('getRoots'),children=null,children2=null,i,j,k; // for(i=0;i<roots.length;i++){ // combotree_org.tree('expand', roots[i].target); // children=combotree_org.tree('getLeafChildren',roots[i].target); // for(j=0;j<children.length;j++){ // combotree_org.tree('expand', children[j].target); // children2=combotree_org.tree('getLeafChildren',children[j].target); // for(k=0;k<children2.length;k++){ // combotree_org.tree('expand', children2[k].target); // } // } // } }
我所需需要的是將選單開啟到三級子節點,程式碼如下
var root = $menu.tree("getRoot"); // $menu.tree("expandAll", root.target); var childrenNodes=$menu.tree('getLeafChildren',root.target); for ( var i = 0 ; i < childrenNodes.length ; i++ ) { var grandChendrenNodes=$menu.tree('getLeafChildren',childrenNodes[i].target); for ( var j = 0 ; j < grandChendrenNodes.length ; j++ ) { $menu.tree('expandTo',grandChendrenNodes[j].target); } }
最後一塊是我自己的程式碼