我在我的项目中实现了JStree。在某些操作中,我想在当前选定的节点中设置数据属性。我试过这个。但是数据属性没有更新。
function SetData(obj)
{
debugger;
var jdata = $('#leftpane').jstree().get_selected(true);
var key = $('#Key').val();
var operator = $('#operator').val();
var value = $('#value').val();
var newdata = {};
newdata.key = key;
newdata.operator = operator;
newdata.value = value;
$('#leftpane').jstree().get_selected(true).data = JSON.stringify(newdata);
}
谢谢
答案 0 :(得分:1)
你可以试试......
var arrayOfSelectedNodes = $('#leftpane').jstree().get_selected(true);
$(arrayOfSelectedNodes).data(newdata);
// or, avoiding the assignment
$($('#leftpane').jstree().get_selected(true)).data(newdata);
...将设置newdata
,但是选择了树中的许多节点(无,一个,多于一个)。
在所有的概率中,您不需要JSON.stringify()
,因为jQuery.data()
完全是在javascript中实现的,而不是DOM,并且可以可靠地写入/读取未分类的对象。
如果您需要一个易于后续更改的对象的“快照”,您可以选择JSON.stringify()
。