0
我只能显示选定的节点和父母,并隐藏其余节点。只显示在jstree中检查过的节点及其父母
当前文档中没有get_unchecked。我的json格式非常庞大,因此将其用于字符串和格式化并重新加载树会效率低下。
有没有办法让所有未经检查的节点和隐藏它? 如果有我可以检查当前选中的节点的所有父节点,然后隐藏所有未经检查的节点,但我找不到任何方法来检索所有未经检查的节点。
我只能显示选定的节点和父母,并隐藏其余节点。只显示在jstree中检查过的节点及其父母
当前文档中没有get_unchecked。我的json格式非常庞大,因此将其用于字符串和格式化并重新加载树会效率低下。
有没有办法让所有未经检查的节点和隐藏它? 如果有我可以检查当前选中的节点的所有父节点,然后隐藏所有未经检查的节点,但我找不到任何方法来检索所有未经检查的节点。
解决我所提出的问题。
$('#jstree_demo_div').on('loaded.jstree', function(e, data) {
console.log("loaded");
checked_ids = $('#jstree_demo_div').jstree('get_selected', true);
$("#jstree_demo_div").jstree('select_all');
$.each(checked_ids, function(index, value) {
$("#jstree_demo_div").jstree('deselect_node', value);
uiParentsShow(value);
});
checked_ids = $('#jstree_demo_div').jstree('get_selected', true);
$.each(checked_ids, function(index, value) {
$("#jstree_demo_div").jstree('hide_node', value);
});
});
function uiParentsShow(node) {
try {
var parent = $("#jstree_demo_div").jstree('get_parent', node);
$("#jstree_demo_div").jstree('deselect_node', parent);
if (parent != '#') {
uiParentsShow1(parent);
}
} catch (err) {
console.log('Error in uiGetParents' + err);
}
}
步骤:
你可以做到这一点:
检查下面的代码和演示 - codepen。
var $tree = $("#myTree").jstree(),
nodesSelected = $tree.get_selected(),
nodeIdsToStay = [];
nodesSelected.forEach(function(node) {
var path = $tree.get_path(node, false, true);
path.forEach(function(n) {
if (nodeIdsToStay.indexOf(n) === -1) {
nodeIdsToStay.push(n);
}
})
})
$('#myTree').find('li').each(function() {
if (nodeIdsToStay.indexOf(this.id) === -1) {
$(this).hide();
}
})
不适用于我的数据集。它真的很长,我怎么发送你的数据集 –
什么不工作? –
它显示了一些兄弟节点。如果你想要的话,我可以把你的jsondata邮寄给你,而且我现在也必须在运行时隐藏复选框图标。 –