我在网上的几个地方发现了jsTree create / get_node函数,但无法使其工作。当用户点击按钮时,我需要使用其Id来获取父节点并创建一个子节点(参见jsfiddle)。这段代码出了什么问题?
这是HTML:
<form>
<input value="Create Child" type="button" onclick="createChild();" />
</form>
<div id="treediv" />
这是javascript:
var sqltree = [
{ "data" : "Node1", "metadata": { "id" : "id1" } , "attr":{"rel":"rel1"} },
{ "data" : "Node2", "metadata": { "id" : "id2" }, "attr":{"rel":"rel2"} },
{ "data" : "Node3", "metadata": { "id" : "id3" }, "attr":{"rel":"rel3"} }
];
$("#treediv").jstree({
"json_data" : { "data" : sqltree },
"plugins" : [ "json_data", "ui", "crrm", "types" ]
});
function createChild(){
alert ('createChild invoked');
var newNode = { data: "Child1" };
var parentNode = $('#treediv').get_node("[id='id2']");
$("#treediv").jstree("create",parentNode,"first",newNode,false,true);
}
答案 0 :(得分:7)
如果引用jsTree实例:
treeInst = $('#treediv').jstree() # create new instance
treeInst = $('#treediv').jstree(true) # get existing instance
然后你可以通过它的id得到一个节点:
node = treeInst.get_node( node_id )
答案 1 :(得分:2)
更改:
var parentNode = $('#treediv').get_node("[id='id2']");
致:
var parentNode = $('#treediv').find("[id='id2']");