(转)EasyUI组件tree只展开根节点下的一级子节点或二级子节点
2017-09-08 17:48
435 查看
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); } }
最后一块是我自己的代码
相关文章推荐
- Easyui中tree组件实现搜索定位功能及展开节点定位
- easyUI treeGrid 惰性加载,动态加载,无论有无子节点都显示展开图标
- easyUI tree的展开和收缩操作以及节点赋值操作
- 原创: EasyUI Tree 最后一级 节点 横向排列
- tree组件点击标签展开、关闭节点
- Tree组件使用指南之五:点击树节点文字展开或收缩其子节点
- easyui-tree.动态展开节点
- easyui _tree的一级子节点节点添加
- easyUI treereload之后保持原来节点的展开状态
- 使用EasyUI的tree组件,叶子节点下会加载所有节点数据,形成死循环......
- easyui tree/TreeGrid使用:逐级加载、指定节点刷新、全部展开
- 关于Struts 树(DOJO dojo.widget.Tree)节点的展开问题!(异步树)
- jquery easyui Treegrid 暴力修改父节点ID
- Tree的全部节点展开
- Flex的Tree全部展开收缩,ji展开选中单个节点
- [Flex] 组件Tree系列 —— 打开和关闭节点
- Tree组件使用指南之四:点击不同的树节点显示不同的表单
- Flex中Tree组件默认展开某一层
- Flex中Tree组件无刷新删除节点
- easyui tree关闭所有节点