使用JQuery动态显示当前选中叶子节点的所有父节点效果图如下:
全部代码如下:
1、定义显示父节点标签的id。
<a id="ind_current" title="当前指标"></a>
2、通过当前叶子节点循环获取得到父节点,直至根节点,并在相应标签处循环遍历读取数据。
<script type="text/javascript">
$(function(){
$('#index-tree').tree({
url:'ind_tree.json',
onClick: function(node){
var isleaf=$(this).tree('isLeaf', node.target);
if(isleaf){
//获取当前选中叶子节点的所有父节点
var nodes=[];//定义数组存放各个节点的指标名称
nodes.push(node.text); //放入当前节点的指标名称
var pnode=$(this).tree('getParent', node.target);//获取当前节点的父节点
while(pnode!=null){
nodes.push(pnode.text); //依次放入各个父节点,直到根节点为止
pnode=$(this).tree('getParent', pnode.target);
}
nodes.reverse(); //数组元素倒序排序
$("#ind-current").text(""); //清空数据,若不清空则所有选中过的节点相应数据都将显示
//遍历数组,循环取数
$.each(nodes,function(){
var html=this;//这里的this指向每次遍历中数组的当前元素
if(this!=names){
$("#ind-current").html( $("#ind-current").html() + html + "-" );
}else{
$("#ind-current").html( $("#ind-current").html() + html );
}
});
}
}
});
});
</script>