You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取jsTree中所有选中节点的ID数组

jsTree获取所有选中节点ID数组的实现方案

jsTree的checkbox插件内置了专门的API用来获取选中节点,不需要手动遍历DOM节点,直接调用对应方法即可。

核心实现方法

使用get_selected实例方法,默认返回值就是所有选中节点的ID组成的数组:

// 主动调用获取选中ID数组
const selectedNodeIds = $('#SimpleJSTree').jstree('get_selected');

如果需要获取选中节点的完整数据对象(比如节点文本、自定义属性等),给方法传入true参数即可:

// 获取完整选中节点对象数组
const selectedNodes = $('#SimpleJSTree').jstree('get_selected', true);
// 后续可以自行从节点对象提取需要的字段,比如拿文本:selectedNodes.map(node => node.text)

常用场景示例

如果你需要在节点选中状态变化时实时获取ID数组,可以绑定jsTree的changed.jstree事件,不需要额外写触发逻辑:

// 在createJSTree方法初始化jstree之后绑定事件即可
$('#SimpleJSTree').on('changed.jstree', function (e, data) {
    // 事件回调的data.selected直接就是最新的选中ID数组
    const selectedIds = data.selected;
    console.log('当前选中ID:', selectedIds);
    // 这里可以写你后续处理数组的业务逻辑
});

注意事项

  • 你当前代码里core.multiple配置为false,是单选模式,返回的数组最多只会包含1个ID,如果需要支持多选请把该值改为true
  • 默认配置下勾选父节点会自动级联选中所有子节点,返回的数组会包含所有级联选中的子节点ID;如果不需要级联效果,可以在初始化配置的plugins同级添加checkbox配置:
    "checkbox": {
        "three_state": false, // 取消三态(选中/未选中/半选)效果,不会级联选中子节点
        "cascade": "" // 关闭级联
    }
    
  • 被设置为disabled: true的节点不会被计入选中结果,不需要额外过滤

内容的提问来源于stack exchange,提问作者Владимир Кузовкин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:36:47