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

时间:2017-10-31 13:59:35

标签: jquery 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);

    }

谢谢

1 个答案:

答案 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()