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

如何在jstree的data配置项中使用变量?现有变量赋值写法不生效

问题原因

你的treedata数组中每个节点都是JSON字符串格式,jstree的core.data配置不支持元素为字符串的数组类型,仅支持原生JS对象数组、完整的JSON数组字符串或异步请求配置。你第二种写法的示例本身存在语法错误,猜测你实际运行时是直接写的不带外层引号的对象数组,所以能正常渲染。

正确修改方案

方案1:直接将treedata定义为原生对象数组(推荐)

把每个节点外层的引号去掉,就可以直接赋值给data配置项,代码如下:

var treedata = [
  { "id" : "ajson1", "parent" : "#", "text" : "Customer" }, 
  { "id" : "ajson2", "parent" : "ajson1", "text" : "Order number" },
  { "id" : "ajson3", "parent" : "ajson1", "text" : "Date" },      
  { "id" : "ajson4", "parent" : "#", "text" : "Company Name" },
  { "id" : "ajson5", "parent" : "#", "text" : "Contact Name" },
  { "id" : "ajson6", "parent" : "#", "text" : "Name1" },
  { "id" : "ajson7", "parent" : "#", "text" : "Product number1" }
];

$('#data').jstree({
  'core' : {
    'data' : treedata 
  }
});

方案2:如果必须保留JSON字符串格式的节点

可以遍历数组把每个字符串解析成JS对象:

var treedata = ['{ "id" : "ajson1", "parent" : "#", "text" : "Customer" }', 
  '{ "id" : "ajson2", "parent" : "ajson1", "text" : "Order number" }',
  '{ "id" : "ajson3", "parent" : "ajson1", "text" : "Date" }',      
  '{ "id" : "ajson4", "parent" : "#", "text" : "Company Name" }',
  '{ "id" : "ajson5", "parent" : "#", "text" : "Contact Name" }',
  '{ "id" : "ajson6", "parent" : "#", "text" : "Name1" }',
  '{ "id" : "ajson7", "parent" : "#", "text" : "Product number1" }'];

// 逐个解析JSON字符串为对象
treedata = treedata.map(item => JSON.parse(item));

$('#data').jstree({
  'core' : {
    'data' : treedata 
  }
});

内容的提问来源于stack exchange,提问作者gromax

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:04