选择JSTree检查节点是叶子还是只选择叶子

我创建了如下jstree

$('#js-tree').jstree({ 'core' : { 'data' : { 'url' : "${pageContext.request.contextPath}/makeTree", "plugins" : [ "types", "search"], 'data' : function (node) { return { 'id' : node.id }; } } } }); 

我想在提交信息时检查所选节点是否为叶节点 –

 var selectedLeaves = $("#js-tree").jstree("get_selected"); 

但是这只给了我一组id。 如何使用is_leaf方法从所选节点中过滤我们唯一的叶节点? 我提到这个post – 强制用户只选择叶子节点这个解决方案对我不起作用。

我自己找到了一个解决方案,使用get_selected api的参数来过滤掉文件夹中的叶子 –

 var nodes = $("#js-tree").jstree(true).get_selected("full", true); $.each(nodes,function(i, node){ if(node.children.length >0){ console.log("not leaf"); } else{ console.log("leaf"); } }); 

如果您有更好的解决方案,请告诉我。

这对我有用

 var res = jQuery.jstree.reference('#js-tree').get_json('#', { flat: true }); var cnt = 0; for (var i = 0, j = res.length; i < j; i++) { if (res[i].parent !== '#') { cnt++; } } 

cnt是我们的输出