~~~~~~~~~ztree的chkStyle:"checkbox"时,取所有选中最底层节点及父节点~~~~~~~~

hxm20003 2013-08-27 04:23:14


ZTREE如何获取所有选中最底层节点(下面没有子节点)和这些节点的父。

需要格式如下:
所有选中的最底层子节点:机房环境,防火墙,应用安全,安全管理制度
所有选中的最底层子节点和对应的父节点:技术对象/物理安全/机房环境,技术对象/网络安全/防火墙,技术对象/应用安全,管理对象/安全管理制度
...全文
534 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
静风听雨111 2015-08-17
  • 打赏
  • 举报
回复
function GetMultItemValues(treeID) { var treeObj = $.fn.zTree.getZTreeObj(treeID); var nodes = treeObj.getCheckedNodes(true); var s1 = ""; var childIdList = ""; var parentNameList = ""; var childNodes; for(i = 0; i < nodes.length; i++) { childNodes = treeObj.transformToArray(nodes[i]); //取得当前节点下面的所有子节点 if (childNodes.length == 1){ parentNameList += _GetChkParentNodes(nodes[i], "name", "/", "desc") + ","; childIdList += nodes[i].id + ","; } } parentNameList = parentNameList.substring(1,parentNameList.length-1); childIdList = childIdList.substring(0,childIdList.length-1); return parentNameList + "&" + childIdList; } function _GetChkParentNodes(node,propName,splitChar,orderBy) { var pNode; var i=0; var s1 = new Array(); s1[i]=_GetNodePropValue(node,propName); pNode = node.getParentNode(); while(!!pNode) { i++; s1[i]=_GetNodePropValue(pNode,propName); pNode = pNode.getParentNode(); } if (orderBy=="desc") { var j=0; var s2 = new Array(); for(i = s1.length; i >= 0; i--) { s2[j] = s1[i]; j++; } return s2.join(splitChar); } return s1.join(splitChar); } 这位兄台,没明白你的意思哈,能解释一下吗?
静风听雨111 2015-08-17
  • 打赏
  • 举报
回复
非常感谢楼上的,非常有用 45678910111213 <script type="text/javascript">var s_child="",s_parent="";var treeObj = $.fn.zTree.getZTreeObj("tree");//树控件var nodes = treeObj.getCheckedNodes(true);//获取所有选择的节点for(var i=0;i<nodes.length;i++){ if(nodes[i].isParent){ s_parent+=nodes[i].name+",";//父节点 }else{ s_child+=nodes[i].name+",";//子节点 }}alert(s_parent+"\n"+s_child);</script>
hxm20003 2013-08-27
  • 打赏
  • 举报
回复
楼上还是没有完全对,但给我一些思路,最后还是自己写出来了。 function GetMultItemValues(treeID) { var treeObj = $.fn.zTree.getZTreeObj(treeID); var nodes = treeObj.getCheckedNodes(true); var s1 = ""; var childIdList = ""; var parentNameList = ""; var childNodes; for(i = 0; i < nodes.length; i++) { childNodes = treeObj.transformToArray(nodes[i]); //取得当前节点下面的所有子节点 if (childNodes.length == 1){ parentNameList += _GetChkParentNodes(nodes[i], "name", "/", "desc") + ","; childIdList += nodes[i].id + ","; } } parentNameList = parentNameList.substring(1,parentNameList.length-1); childIdList = childIdList.substring(0,childIdList.length-1); return parentNameList + "&" + childIdList; } function _GetChkParentNodes(node,propName,splitChar,orderBy) { var pNode; var i=0; var s1 = new Array(); s1[i]=_GetNodePropValue(node,propName); pNode = node.getParentNode(); while(!!pNode) { i++; s1[i]=_GetNodePropValue(pNode,propName); pNode = pNode.getParentNode(); } if (orderBy=="desc") { var j=0; var s2 = new Array(); for(i = s1.length; i >= 0; i--) { s2[j] = s1[i]; j++; } return s2.join(splitChar); } return s1.join(splitChar); }
scscms太阳光 2013-08-27
  • 打赏
  • 举报
回复
<script type="text/javascript">
var s_child="",s_parent="";
var treeObj = $.fn.zTree.getZTreeObj("tree");//树控件
var nodes = treeObj.getCheckedNodes(true);//获取所有选择的节点
for(var i=0;i<nodes.length;i++){
    if(nodes[i].isParent){
        s_parent+=nodes[i].name+",";//父节点
    }else{
        s_child+=nodes[i].name+",";//子节点
    }
}
alert(s_parent+"\n"+s_child);
</script>
hxm20003 2013-08-27
  • 打赏
  • 举报
回复
感谢楼上的思路,是否可以提供简单的代码?
lzh_me 2013-08-27
  • 打赏
  • 举报
回复
获取之后循环判断,ztree应该 不会提供你需要的这种结果的方法,但是会有获取选中和获取父类的方法,你可以通过这些方法进行判断筛选。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧