向 jstree 容器中插入动态数据

Inserting dynamic data to jstree container

我想将动态数据插入我的 div 容器中作为 jstree。但是,我没有任何风格。

html = '<ul><li>Root node 1<ul><li id="child_node_1">Child node 1</li><li>Child node 2</li></ul></li><li>Root node 2</li></ul>';
$('#div_tree_content').html(html);
$('#div_tree_content').jstree('refresh');

只是说我已经初始化 div 如下:

$(document).ready(function(){

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

}

刷新时出现错误:

TypeError: this.get_container_ul(...)[0] is undefined

这不是 jstree 的工作方式 - 您不能交换容器中的 HTML 并期望它工作。您必须使用 delete_nodecreate_noderename_node 修改结构或使用新数据重新创建树(如果是 HTML,您需要先销毁当前实例,添加新的 HTML 并重新创建实例)。

还有更高级的方法来换出数据 - 例如将 core.data 设置为一个函数,但我怀疑你是否需要它。

因此,以您的示例为基础:

var html = '...';
$('#div_tree_content').jstree(true).destroy();
$('#div_tree_content').html(html);
$('#div_tree_content').jstree();