在 jstree 中将数据属性设置为节点



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

最新更新