检查节点是否是jstree中的叶子

时间:2014-02-09 07:35:01

标签: jquery jstree

我一直在试图找出如何检查一个节点是否是jstree中的一个叶子,但是所有信息似乎都是关于jstree的先前版本并且已经废弃了,据我所知......

所以我有以下内容:

$('#jstree').jstree();

$('#jstree').on("changed.jstree", function (e, data) {
    console.log(data.selected);

});

更改回调为我提供了控制台中所选id的输出。但是,我如何获得有关它们是否是叶子(没有孩子)的信息?

我想它必须遍历一些数组,因为上面的代码可以为多个选定的节点(我想要的)提供id,就像在控制台中一样:

[“3”,“4”]

但我无法弄清楚如何做到这一点。我一直在搜索文档,但是对于我的jquery技能水平它没有帮助,它似乎只列出了对象和事件等等(例如“is_leaf”列在“类型插件”下),但我找不到如何编码的例子。我不知道在哪里放置类型插件,如果这是我需要的,也不知道is_leaf部分,以便得到我上面描述的每个选定节点...

3 个答案:

答案 0 :(得分:2)

只需在节点上使用is_leaf函数。

http://www.jstree.com/api/#/?q=is_leaf&f=is_leaf(obj)

答案 1 :(得分:1)

jstree中的每个叶节点都有

  class='jstree-leaf'

在其HTML中。所以你可以在

中查看
$.each(function(e,data){ });

中的

  .bind('loaded.jstree',function(e,data){

   //code here

   });

检查树中是否存在类。加载事件中的每个循环遍历jstree中的所有节点。

希望你有所了解。您可以参考文档中的语法。

如有任何疑问,请与我联系。

答案 2 :(得分:0)

if ($('#jstree').jstree().jstree.get_selected(true)[0].children == 0)
    //Do Something

因此,这将检查所选项目是否有任何子项,如果没有,则继续。