如何从 jstree 元素获取数据属性

How to get data attributes from a jstree element

具有数据属性的简单 jstree 列表:

<div id="jstree1">
    <ul>
        <li class="jstree-files jstree-open" data-file-id=716 data-size=1088>list_elemnt1<ul>
    </ul>
</div>

我可以成功获取路径:

$(document).ready(function () {
            $('#jstree1').on('changed.jstree', function (e, data) {
                var path = data.instance.get_path(data.node, '/').replace('//', '/');
            });
        });

但我找不到获取数据属性的正确方法(data-file-iddata-size

edata 都找遍了,但无济于事。

相关的 DOM 节点在事件的 data 参数中可用。您可以用 jQuery 包装它并方便地访问数据属性:

$('#tree_menu').on('changed.jstree', function (e, data) {
    alert( $(data.node).data("file-id") );
});

或者...您可以直接使用标准 DOM 方法,在这种情况下,就方便而言,这几乎是一样的。

$('#tree_menu').on('changed.jstree', function (e, data) {
    alert( data.node.getAttribute("data-file-id") );
});