获取选定的Jstree节点值JQuery

Jak*_*ski 4 jquery jstree

嗨,我有获取jstree模型的选定节点的数据的问题.

<script type="text/javascript">
    $('#preview').on("changed.jstree", function (e, data) {
        console.log(data.selected);
        console.log(data.selected.attr("text"));
    });
</script>
Run Code Online (Sandbox Code Playgroud)

第一个控制台日志显示"[js1_1]"或"[js1_2]",具体取决于所选节点.但第二个日志"未定义不是一个函数"; /我尝试了很多不同的方法,但我没有获得节点文本(标题)或任何其他信息

我发送模型列表作为json,它看起来像这样:

Public Class JsTreeModel
   Public Property text As String
   Public Property icon As String
   Public Property Id As String
   Public Property PId As String
   Public Property ParentId As String
   Public Property Status As Integer
End Class
Run Code Online (Sandbox Code Playgroud)

谁有解决方案?

更新jstree代码

<script type="text/javascript">
$(document).ready(function () {

    $('#WhenRemoving').toggle($('.RemoveCheckbox').is(":checked"));
    $('#WhenAdding').toggle(!$('.RemoveCheckbox').is(":checked"));

    $('#preview').jstree({
        'core': {
            'data': {
                'url': '/TreeTest/TreePreview/',
                'data': function (node) {
                    return node;
                }
            }
        }
    }).bind("loaded.jstree", function (event, data) {
        $(this).jstree("open_all");
    })
});
</script>
Run Code Online (Sandbox Code Playgroud)

当我将它添加到我的jstree时,我可以在html div中看到所选的名称节点

.on('changed.jstree', function (e, data) {
        var i, j, r = [];
        for (i = 0, j = data.selected.length; i < j; i++) {
            r.push(data.instance.get_node(data.selected[i]).text);
        }
        $('#event_result').html('Selected: ' + r.join(', '));
    })
});
Run Code Online (Sandbox Code Playgroud)

Str*_*bek 16

以上都没有为我工作.这有效:

$(treeID).jstree().get_selected(true)[0].text;
Run Code Online (Sandbox Code Playgroud)

  • 如果选择错误的答案是正确的,我喜欢它,而正确的答案则不是 (2认同)