一、當某節點被選擇或被取消選擇時獲取所有被選擇的節點:
<link rel="stylesheet" href="./static/libs/ztree/css/metroStyle/metroStyle.css" type="text/css"><!-- ztree --> <script src="./static/libs/ztree/js/jquery.ztree.core-3.5.js"></script><!-- ztree --> <script src="./static/libs/ztree/js/jquery.ztree.exedit.js"></script><!-- ztree --> <script src="./static/libs/ztree/js/jquery.ztree.excheck-3.5.js"></script><!-- ztree --> <script src="./static/libs/ztree/js/jquery.ztree.exhide-3.5.js"></script><!-- ztree --> <style> ul.ztree {border: 0 solid #617775;background: #ffffff;width:100%;height:100%;overflow-y:hidden;overflow-x:hidden;} </style>

<ul id="treeDemo" class="ztree"></ul>

var setting = { check: { enable: true, chkboxType: { "Y": "ps", "N": "ps" }//設置子父關聯關系 }, data: { simpleData: { enable: true } }, callback: { beforeClick: beforeClick, onCheck: onCheck } }; function beforeClick(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.checkNode(treeNode, !treeNode.checked, null, true); return true;//此處一定設置為true,否則當取消選擇時,onCheck函數不會起作用 } function onCheck(e, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"), nodes = zTree.getCheckedNodes(true), v = ""; for (var i=0, l=nodes.length; i<l; i++) { if(nodes[i].isParent){ }else{ v += nodes[i].name + ",";//name為獲取節點名稱 ,id為獲取id,pId為獲取pId } } if (v.length > 0 ) { v = v.substring(0, v.length-1); } alert(v); } var zNodes =[ { id:1, pId:0, name:"根部門", open:true}, { id:11, pId:1, name:"一級部門1", open:true}, { id:111, pId:11, name:"一級部門1子部門1"}, { id:112, pId:11, name:"一級部門1子部門2"}, { id:12, pId:1, name:"一級部門2", open:true}, { id:121, pId:12, name:"一級部門2子部門1"}, { id:122, pId:12, name:"一級部門2子部門2"} ]; $.fn.zTree.init($("#treeDemo"), setting, zNodes);

二、點擊獲取當前節點值:
var setting = { data: { simpleData: { enable: true } }, callback: { onClick: onClick } }; function onClick(event, treeId, treeNode) { alert(treeNode.id + ", " + treeNode.name); //你的ajax代碼 } var zNodes =[ { id:1, pId:0, name:"普通的父節點", t:"我很普通,隨便點我吧", open:true}, { id:11, pId:1, name:"葉子節點 - 1", t:"我很普通,隨便點我吧"}, { id:12, pId:1, name:"葉子節點 - 2", t:"我很普通,隨便點我吧"}, { id:13, pId:1, name:"葉子節點 - 3", t:"我很普通,隨便點我吧"}, { id:2, pId:0, name:"NB的父節點", t:"點我可以,但是不能點我的子節點,有本事點一個你試試看?", open:true}, { id:21, pId:2, name:"葉子節點2 - 1", t:"你哪個單位的?敢隨便點我?小心點兒..", click:false}, { id:22, pId:2, name:"葉子節點2 - 2", t:"我有老爸罩着呢,點擊我的小心點兒..", click:false}, { id:23, pId:2, name:"葉子節點2 - 3", t:"好歹我也是個領導,別普通群眾就來點擊我..", click:false}, { id:3, pId:0, name:"郁悶的父節點", t:"別點我,我好害怕...我的子節點隨便點吧...", open:true, click:false }, { id:31, pId:3, name:"葉子節點3 - 1", t:"唉,隨便點我吧"}, { id:32, pId:3, name:"葉子節點3 - 2", t:"唉,隨便點我吧"}, { id:33, pId:3, name:"葉子節點3 - 3", t:"唉,隨便點我吧"} ]; $.fn.zTree.init($("#treeDemo"), setting, zNodes);

三、獲取第一個父節點的第一個子節點 :
var zTree = $.fn.zTree.getZTreeObj("treeDemo"); console.log(zTree.getNodes()[0].children[0]);

四、獲取所有節點:
一般情況下,通過zTree官方API的方法獲取得到的是一個包含所有子節點的根節點(子節點都處於 children 屬性下)
var treeObj = $.fn.zTree.getZTreeObj(“tree");
var nodes = treeObj.getNodes();

當我們需要一次獲取所有樹節點的時候,有兩種方法:
一種是通過遞歸的方式(此處就不提及了)。
另一種就是通過zTreet提供的方法:
var treeObj = $.fn.zTree.getZTreeObj(”tree“); var node = treeObj.getNodes(); var nodes = treeObj.transformToArray(node);

這種方法得到的就是整顆樹的所有節點集合了。
五、取消節點選擇:
var treeId = $.fn.zTree.getZTreeObj("#tree-id"); treeId.checkAllNodes(false); treeId.cancelSelectedNode();

六、設置下拉樹:
下拉樹html:
<div class="form-group">
<label class="col-lg-4 col-md-4 col-sm-4 control-label font-normal" style="text-align: right;">用戶列表:</label>
<div class="col-lg-5 col-md-5 col-sm-5" style="position:relative;z-index:9999999;">
<input type="text" class="form-control" name="addUserModalUsers" id="add-user-modal-users" onfocus="this.blur();" onclick="showMenu();"/>
<!--onfocus="this.blur();" 是為了禁止用戶輸入-->
<div id="add-user-modal-users-content" style="display:none; position: absolute; width: 100%;">
<ul id="add-user-modal-users-tree" class="ztree" style="width: 100%;height: 200px; overflow: auto;border: 1px solid #e2e2e2;box-shadow: 0 0 10px #ccc;"></ul>
</div>
</div>
</div>

下拉樹設置:
/** * 增加用戶下拉樹 */ var UsersTreeSetting = { check : { enable : true, chkboxType : { "Y" : "ps", "N" : "ps" } }, view : { dblClickExpand : false }, data : { simpleData : { enable : true } }, callback : { beforeClick : function(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("add-user-modal-users-tree"); zTree.checkNode(treeNode, !treeNode.checked, null, true); return true; }, onCheck : function(e, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("add-user-modal-users-tree"), nodes = zTree.getCheckedNodes(true), v = ""; for (var i = 0, l = nodes.length; i < l; i++) { if (nodes[i].isParent) { } else { v += nodes[i].name + ",";//只獲取最末端節點的值 } } if (v.length >= 0){ v = v.substring(0, v.length - 1); $("#add-user-modal-users").val(v).change(); } } } }; function showMenu() { var parentDept = $("#add-user-modal-users"); var parentDeptOffset = $("#add-user-modal-users").offset(); $("#add-user-modal-users-content").css({ right : -10 + "px", top : (parentDept.outerHeight() + 5) + "px" }).slideDown("fast"); $("body").bind("mousedown", onBodyDown); } function hideMenu() { $("#add-user-modal-users-content").fadeOut("fast"); $("body").unbind("mousedown", onBodyDown); } function onBodyDown(event) { if (!(event.target.id == "menuBtn" || event.target.id == "add-user-modal-users" || event.target.id == "add-user-modal-users-content" || $(event.target).parents( "#add-user-modal-users-content").length > 0)) { hideMenu(); } }

通過異步請求獲得節點數據:
$.ajax({
type: "GET",
url: 'data/' + 'user' + '.json',
data: {},
dataType: "json",
success: function(data){
$.fn.zTree.init($("#add-user-modal-users-tree"), UsersTreeSetting, data);
var usersTreeObj = $.fn.zTree.getZTreeObj("add-user-modal-users-tree");
usersTreeObj.expandAll(true);
},
error: function(data){
alert("error");
console.log(data);
}
});

user.json:
[
{ "id":1, "pId":0, "name":"ktsdm", "t":"我很普通,隨便點我吧", "open":true}, { "id":11, "pId":1, "name":"校領導 - 1", "t":"我很普通,隨便點我吧"}, { "id":12, "pId":1, "name":"校領導 - 2", "t":"我很普通,隨便點我吧"}, { "id":13, "pId":1, "name":"校領導 - 3", "t":"我很普通,隨便點我吧"}, { "id":2, "pId":1, "name":"電子科學與工程學院", "t":"點我可以,但是不能點我的子節點,有本事點一個你試試看?", "open":true}, { "id":21, "pId":2, "name":"教授 - 1", "t":"你哪個單位的?敢隨便點我?小心點兒..", "click":false}, { "id":22, "pId":2, "name":"教授 - 2", "t":"我有老爸罩着呢,點擊我的小心點兒..", "click":false}, { "id":23, "pId":2, "name":"教授 - 3", "t":"好歹我也是個領導,別普通群眾就來點擊我..", "click":false}, { "id":3, "pId":1, "name":"計算機學院", "t":"別點我,我好害怕...我的子節點隨便點吧...", "open":true, "click":false }, { "id":31, "pId":3, "name":"教授 - 1", "t":"唉,隨便點我吧"}, { "id":32, "pId":3, "name":"教授 - 2", "t":"唉,隨便點我吧"}, { "id":33, "pId":3, "name":"教授 - 3", "t":"唉,隨便點我吧"} ]

七、通過代碼設置某一節點樣式:
$.fn.zTree.init($("#department-tree"), departmentTreeSetting, data); var zTree_Menu = $.fn.zTree.getZTreeObj("department-tree"); var curMenu = zTree_Menu.getNodes()[0]; zTree_Menu.selectNode(curMenu); var a = $("#" + zTree_Menu.getNodes()[0].tId + "_a"); a.addClass("cur");

var deptTree = $.fn.zTree.getZTreeObj("department-tree"); var getAddedNode = deptTree.getNodeByParam("id", chosenDeptId, null); deptTree.selectNode(getAddedNode); var currentNode = $("#" + getAddedNode.tId + "_a"); currentNode.addClass("cur");

八、在樹節點中顯示name屬性中的內容,樹節點鼠標保持hover狀態時顯示其它屬性內容:
按照如下方式設置即可:
check: {
enable: true, chkboxType : { "Y" : "ps", "N" : "ps" } }, data: { simpleData: { enable: true, idKey : "did", pIdKey : "pdid" }, key: { title: "alias" } },
