将动态数据插入jstree容器

时间:2015-07-29 14:02:22

标签: jquery jstree

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

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

1 个答案:

答案 0 :(得分:2)

这不是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();