2012-12-17 4 views
4

현재 선택된 노드의 레벨을 얻으려면 어떻게해야합니까? 나는. 부모의 수.jstree 선택된 노드의 레벨을 얻습니다.

는 I과 같은 노드의 선택을 실행하는 부 가지고

.bind("select_node.jstree", function (event, data) { 
     var nodeInfo = $("#" + data.rslt.obj.attr("id")); 
     console.log(data.rslt.obj.attr("id")); // the id of the node 
     console.log(nodeInfo.children("a").text()); // the name of the node 
        // the level of the node??? 
}); 

답변

5

data.inst.get_path().length

1 루트 노드이다;

.bind("select_node.jstree",function(e,data) { 
     var inst=data.inst; 
     var level=inst.get_path().length; 
     var selected=inst.get_selected(); 
     var id=selected.attr('id'); 
     var name=selected.prop('tagName'); 
     console.log(name,id,level); 
    }); 

demo

(DOM 더 대신에 검색에, 이달를 사용하는);

+0

작품 설명, 감사합니다. – Angus

6

또한 (jstree 3.1.0에서) 사용할 수 있습니다

.bind("select_node.jstree",function(e,data) { 
     var level=data.node.parents.length;  // 1 = root level, 2 = next level down, etc 
    }); 
2
.bind("select_node.jstree", function(e, data) { 
    var level = data.node.parents.length; 
    var text = data.node.text; 
    var id = data.node.id; 
    console.log(level,text,id); 
}) 
; 
관련 문제