
1 treeNodegetParentNode() 方法能得到其父节点
2 目前的确没有提供 节点自身 index 的方法,可以自己利用 父节点的 children 遍历一遍来判断。对于新的浏览器 可以直接使用 indexOf ,但是老的浏览器是不支持的,请注意; 另外 如果当前节点是根节点那么它是没有父节点的,这时候可以直接利用 getNode 方法获取根节点的Array 集合
不需要使用jquery。
使用ztree的回调函数,函数中返回treeNode,consolelog(treeNode)就可以查看ztree相关数据了
ztree获取当前选中节点及所有父节点
获得当前选中节点路径,如部门库〉新闻部〉文字稿:
树如下图:
js:
var curLocation="";//当前位置
var treeObj = $fnzTreegetZTreeObj("rs_tree");
var nodes = treeObjgetSelectedNodes();
if(nodeslength>0){
var allNode = nodes[0]['text'];//获取当前选中节点
var node = nodes[0]getParentNode();
getParentNodes(node,allNode);
}
var location = "";
var nodeArrs = curLocationsplit(">");
for(var i=nodeArrslength-1;i>=0;i--){
location += nodeArrs[i]+">";
}
location = locationsubstring(0, locationlastIndexOf(">"));
alert(location);
function getParentNodes(node,allNode){
if(node!=null){
allNode += ">"+node['text'];
curNode = nodegetParentNode();
getParentNodes(curNode,allNode);
}else{
//根节点
curLocation = allNode;
}
}
结果:location: 部门库>xx部>国内
当数据适合同步加载,但又不想每次打开页面就自动运算出var
zNodes的值,因为很多时候打开页面都用不到ztree树,为了提高效率只想在需要用到并点击的时候才赋值给var
zNodes,才d出ztree的树来,所以我就把以下这段代码放到了showMenu()中
j$(document)ready(function(){
j$fnzTreeinit(j$("#treeDemo"),
setting,zNodes);
<script>
function filter(node) { //过滤器直选中2级节点累加
return (nodelevel == 2 && nodechecked == true);
}
var setting = { //设置
check: {
enable: true
},
callback: {
onCheck: onCheck
}};
function onCheck(e, treeId, treeNode){ //这是将所有选中节点的名字 用,分割做拼接 用于持久化到数据库
var zTree = $fnzTreegetZTreeObj("tree")getNodesByFilter(filter);
var choose = "";
for (var i=0;i<zTreelength;i++) {
if(zTree[i]name !=null)
choose +=(i == (zTreelength-1))zTree[i]name:zTree[i]name+",";
}
$("#ztreesnames")val(choose);
treeIds();
}
function treeIds(){ //这是将选中的节点的id用;分割拼接起来,用于持久化到数据库
var zTreeO = $fnzTreegetZTreeObj("tree")getNodesByFilter(filter);
var idListStr = "";
for (var i = 0; i < zTreeOlength; i++) {
if (zTreeO[i]id != null) {
idListStr+= (i == (zTreeOlength-1))zTreeO[i]id:zTreeO[i]id+";";
}
};
$("#ztreeids")val(idListStr);
ztree异步加载节点的时候需要提供一个url。
ztree初始化完会向这个url发送一次请求注意这个时候是不会带参数的。这个时候你需要返回给它你想要的节点。
ps:我是返回一个根节点给它。
然后在点击此时的节点时候,还是会向这个url发送请求此时会带配置的参数,如果你现在的处理方式和初始化之后那样,就还是返回你开始的那些节点给你。
所以,你需要根据不同的动作来处理你的返回值。
async : {enable : true,
url : _mapurl,//异步路径
autoParam : ["id","name" ],//请求携带节点上的属性值
dataFilter : function(treeId, parentNode, childNodes) {
if (!childNodes)return null;
for (var i = 0, l = childNodeslength; i < l; i++) {
var _c=childNodes[i];
_cisParent=_cparent;
childNodes[i]name = _cnamereplace(/\n/g, '');
}
return childNodes;
}
},
//只是提供处理思路 不需要copy
@RequestMapping("/getOrg")@ResponseBody
public List<ObjectTypeBean> getOrg(>
以上就是关于ztree怎么返回选中的节点的值全部的内容,包括:ztree怎么返回选中的节点的值、怎么用jquery定位ztree 中idkey和pidkey 值、ztree中怎样获取选中节点的父节点及自己的index等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)