我已经在我的项目中实现了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);
}
谢谢
你可以
试试...
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()
,该快照可能会发生后续更改。