由于项目用了 bootstrap-treeview的控件,但是需要根据加载的树形点击时获取该节点的层级,bootstrap-treeview本身没有获取层级的方法,于是自己写了一个。
此方法只适用于一个根节点的情况,其他情况请自行考虑。
主要采用递归的方式获取父节点,当父节点的nodeId为0时说明当前节点是根节点。
使用全局变量level,当递归函数执行完成之后,level的值就是当前选中节点的层级,就可以根据该值进行相应的操作了。
上代码:
var level = 0;//全局变量的层级
var node; // 被选中的节点
$(function() {
// 节点选中
$('#treeview').on('nodeSelected', function(event, data) {
node = data;
getLevel(node);
});
});
function getLevel(node) {
if (node.nodeId == 0) {
return;
} else {
level++;
var pnode = $('#treeview').treeview('getParent', node);//此方法是获取父节点
if ('length' in pnode) {//如果修改节点之后,就会出现levela多加了一个的情况,因此减1
level--;
return;
}
getLevel(pnode);
}
}
至此,完成。