JsTree从未渲染的节点获取html属性



我已经开始使用JsTree,在导航节点时遇到了问题。我使用了一个HTML列表来创建树视图,并且在创建树时所有信息都显示在页面上,没有额外的AJAX调用。

当选择父节点时,我希望从所有子节点(一些自定义HTML属性)获得信息。选择我使用的父对象时:

data.instance.get_node("[id='" + value + "']");

在"changed.jstree"事件上,该事件将节点和我需要的所有信息(包括所有子对象)作为一个完整的jQuery对象返回。

但是,当未在屏幕上绘制子对象(父对象未展开)时,使用同一行从子对象获取信息会返回"false",而不是jQuery对象。

在创建JsTree时,我还使用以下行尝试在创建时加载所有节点:

jQuery(controlSelector).jstree("load_all");

我做错什么了吗?如果未渲染子节点并且未展开父节点,是否有方法从该子节点获取信息?

感谢

您可以使用所选节点的children_d属性来获取其所有子节点的id。检查下面的代码和演示-Fiddle。

var selectedNodes = $('#container').jstree().get_selected(true);
for(var i=0, len=selectedNodes.length; i<len; i++) {
    // access id's with selectedNodes[i].children_d ...
}

我发现所有未提交的数据都存储在中

jQuery("#container").jstree(true)._model.data

然后,我循环遍历树上的所有节点,并将节点与我设置的条件语句相匹配,以检索调用时所需的内容:

tree.get_node("#value");

如果当前未在屏幕上绘制节点,则返回false。

最新更新