根据所选的jsTree节点

时间:2016-02-25 20:17:38

标签: javascript jquery json jstree bootstrap-table

我在fiddle中有一个例子。我有一棵这样的树:

> Root > Parent[n] > Child[n].

Child中我添加了一个事件处理程序。在示例中,它位于Child1中,因此,如果我点击Child1,它将呈现一个包含变量array中3行的表格。

我想要的是,如果我点击Child1,它将按分支“Parent1”过滤表格(array),这样,它将呈现包含2行名为<的表格/ em>“Parent1”。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

我必须做两件事来让你的代码工作:

  1. 添加jsTree css以使其可扩展
  2. 您已将select_node处理程序附加到标识为$study的内容,而它应该是jstree

    $('#jstree').on('select_node.jstree', function (evt, data) {...})
    
  3. 检查this Fiddle上的更新。

    如果您愿意,可以稍微简化一下代码 - Fiddle

    <强>更新

    如果要按所选节点的父文本过滤数组,可以替换此行:$table.bootstrapTable('load', array);

    使用:

    var parentNodeId = $('#jstree').jstree().get_node(data.selected[i]).parent;    
    var parentNodeText = $('#jstree').jstree().get_node(parentNodeId).text;
    
    var filteredArray = array.filter(function(item){
       if (item.name === parentNodeText) {
           return item;
       }  
    });
    
    $table.bootstrapTable('load', filteredArray);