의 모든 자식과 하위 자식 노드를 가져옵니다. 하지만 어떻게 든 재귀를 사용하지 않으면 작동하지 않습니다. jsTree 고유의 더 좋은 방법이 있습니까?jstree의 jQuery 플러그인은 - 내가 모든 노드와 선택한 부모의 하위 노드를 가져 오기 위해 애 쓰고 <a href="http://jstree.com" rel="noreferrer">jsTree jquery plugin</a></p> <p>을 사용하고 부모
답변
. 제 경우에는 xml을 트리의 데이터 소스로 사용하고 있습니다. 다음과 같은 방식으로 open_node 이벤트를 jstree에 바인딩합니다. xml을 사용하더라도 내부 구조는 html 데이터의 구조라는 것을 알아 두십시오.
// jsTree Configuration hash
var jsTreeConfig = {};
$("#demo1").jstree(jsTreeConfig)
.bind('open_node.jstree', function(e, data) {
var parentObj = data.rslt.obj; // parent object
var jstreeInstance = data.inst; // jstree instance
$(data.rslt.obj).find("li").each(function(idx, listItem) {
var child = $(listItem); // child object
// do Stuff with child which can be any level of hierarchy depth
// ...
});
});
불쌍한 들여 쓰기 죄송합니다. jstree ({...})에는 jstree를 인스턴스화하는 모든 옵션이 있습니다. 이 기능이 작동하려면 jQuery가 미리로드되어 있어야합니다. – Sid
당신은이 모든 선택기를 사용하여 전체 트리를 얻을 수 있습니다 :이 할 수있는 방법을 발견 $("#demo1").find("li > a")
감사합니다. @fliespl하지만 주어진 부모의 자식 노드 만 필요합니다. 나는 그것을하는 방법을 알아 냈다. 나는 그것을 테스트 한 후 곧 답변을 게시 할 것입니다. – Sid
이전 솔루션을 시도했지만 최신 버전의 jsTree (v3.2.1)에서는 작동하지 않습니다. 아래는 부모의 하위 노드와 하위 노드를 가져 오는 업데이트 된 솔루션입니다.
$("#myTree").bind('selected_node.jstree', function (node, data) {
var selectedNodes = $("#myTree").jstree(true).get_json(data.node.id, { flat: true });
for (var i = 0; i < selectedNodes.length; i++) {
// Apply logic here
// ...
// ...
// ...
}
});
P. - 나는 여기서 나의 질문에 대답했다. – Sid