javascript - 如何在页面加载时获取呈现的树数据

标签 javascript jquery jstree

如何在 jstree 中加载页面时获取所有呈现的树 metadata,输出如下:

[23,24]

注意:我希望将每个 id 放在 metadata 对象中,以便在页面加载时像这样 [23,24]

$(function() {
  $('#jstree').jstree({
    "json_data": {
      "data": [{
        "data": "A node",
        "metadata": { id: 23 },
        "children": ["Child 1", "A Child 2"]
      }, {
        "metadata": { "id": 24 },
        "data": "Node 2",
      }]
    },
    "plugins": ["themes", "json_data", "ui"]
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://old.static.jstree.com/v.1.0pre/jquery.jstree.js"></script>
<div id="jstree">
</div>

最佳答案

要检索 id 值,您可以在提供给 jsTree 实例的数组上使用 map(),如下所示:

$(function() {
  var treeStructure = [{
    "data": "A node",
    "metadata": { id: 23 },
    "children": ["Child 1", "A Child 2"]
  }, {
    "metadata": { "id": 24 },
    "data": "Node 2",
  }];
  
  var ids = treeStructure.map(function(o) {
    return o.metadata.id;
  });
  console.log(ids);

  $('#jstree').jstree({
    "json_data": {
      "data": treeStructure
    },
    "plugins": ["themes", "json_data", "ui"]
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://old.static.jstree.com/v.1.0pre/jquery.jstree.js"></script>
<div id="jstree"></div>

关于javascript - 如何在页面加载时获取呈现的树数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725512/

相关文章:

jquery - JStree 1.0 创建新类型

JavaScript改变两侧的显示样式

javascript - 竞争条件与 bcrypt 的加密计时并添加新的 mongo db 文档

jquery - Qaptcha - 有效吗?

jquery - 如何动态添加值为 =""而不是等于最后一个表单元素的表单元素

JSTree:单击而不是双击时使节点展开?

javascript - 使用 JavaScript 中的 API,它使用 JS 最大整数以上的 ID

javascript - body onload 不会触发 javascript jquery

javascript - 获取折叠后 Accordion 的 offsetTop

javascript - 使用 JSON 填充 jstree