我不是在谈论$("#demo1").jstree("rename",node)
,它使节点可以为用户编辑。我在谈论代码中正在更改的名称。例如,我的节点都以2位数字“[01]”作为前缀,因此在我调用$("#demo1").jstree("rename",node)
之前我想要删除前缀,并在用户完成编辑后将其重新放入。我已经尝试选择“#nodeid a”,但在超链接中有一个ins标签,如果我替换URL内容,这将被替换。文档没有帮助,我没有看到图书馆代码的运气,可以帮助我吗?克里斯
答案 0 :(得分:24)
推荐方法是使用rename_node
$("#demo1").jstree('rename_node', node , text );
Please keep in mind 默认情况下对树的所有修改都是 阻止(创建,重命名,移动,删除)。要启用它们设置
core.check_callback
为真
$('#demo1').jstree({
'core': {
'check_callback': true,
/// rest of the options...
}
});
重命名您的节点(替代方案,不推荐)
$("#demo1").jstree('set_text', node , text );
<强>调试强>
如果您仍然遇到问题,可以使用此方法获取上一个错误。
$('#demo1').jstree(true).last_error()
旧版本(v1。*)
$("#demo1").jstree('rename_node', [node , text] );
$("#demo1").jstree('set_text', [node , text] );
另见:
rename_node
set_text
答案 1 :(得分:5)
我相信在上面的答案中有关于方括号“[”的语法错误。我使用jsTree 3.0.4,这是正确的语法 -
right - $("#demo1").jstree('set_text',node,text);
wrong - $("#demo1").jstree('rename_node', [node , text] );
Example -
$("#tree_3").jstree('set_text',"#idSelectorForNode" ,"NewName");
答案 2 :(得分:1)
您应该打开开关以允许重命名操作,例如:
$('#container').jstree({
'core' : {
'check_callback' : function (operation, node, node_parent, node_position, more) {
// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'
// in case of 'rename_node' node_position is filled with the new node name
return operation === 'rename_node' ? true : false;
}
});
答案 3 :(得分:0)
您可以使用它通过 jstree
refresh 更新节点文本:
$("#demo1").jstree(true).rename_node(node , "Renamed_Text");