如何在jstree复选框插件中选择父节点时将所有子节点值作为数组

时间:2017-04-19 12:31:54

标签: jstree

我正在研究jstree复选框插件,并希望在选择父节点时获取所有子节点值。我试图实现get_checked方法,但它不起作用。

以下是我的代码。

<div id="demo"></div>

$('#demo').jstree({
'core' : {
    'data' : [
        { "text" : "adya", "children" : [
            { "text" : "id" },
            { "text" : "name"},
            {"text":"address"}
        ]
        },
        { "text" : "order", "children" : [
            { "text" : "id" },
            { "text" : "order_name" }
        ]}
    ]
},
'checkbox':{'two_state':true,'whole_node':false,'tie_selection':false},
'plugins':['checkbox','themes','ui'] });
a = [];
$('#demo').jstree("get_checked",null,true).each(function() 
 { a.push(this.id) });
console.log(a);

请帮帮我。

2 个答案:

答案 0 :(得分:1)

试试这个:

jQuery.jstree._reference("#demo")._get_children(parentNode);

答案 1 :(得分:0)

我假设您要选择所选父节点的所有子节点。 为此,您可以使用get_children_dom(obj)方法(see docs here),此处参数&#39; obj&#39;是父的完整节点对象。要获取所有选定的父节点对象,可以使用get_top_selected()方法。然后,对于每个父节点,您可以获取其子节点。

在您的代码中,您可以

   var parentNodes = $('#demo').jstree().get_top_selected(true);
   var selectedChildNodes;
     $.each(parentNodes, function(index,value){
        selectedChildNodes = $('#demo').jstree().get_children_dom(value);
     }); 
相关问题