【问题标题】:create JSON object for jsTree from XML data [duplicate]从 XML 数据为 jsTree 创建 JSON 对象
【发布时间】:2017-11-08 17:34:27
【问题描述】:

我无法填充 jsTree,因为我正在创建的数组有问题。

jsTree 允许您传入 JSON 数据,因此我尝试格式化 jsTree 喜欢的对象数组:

    var myAry = [];

    $(xml).find('group').each(function() {

      myAry.push({
        "id": $(this).find('GroupID').text(),
        "parent": "#",
        "text": $(this).find('GroupName').text(),

      });
    });

当我将 [myAry] 转储到控制台时,它看起来像一个格式正确的数组,但 jsTree 不喜欢它。但是,如果我手动创建一个数组,jsTree 喜欢它:

  var testAry = [
                    {"id": "42", "parent": "#", "text": "Foo"},
                    {"id": "69", "parent": "#", "text": "Bar"},
                    {"id": "1", "parent": "#", "text": "Dolphin"},

    ];

我的循环出了什么问题?

【问题讨论】:

  • 与您的 testAry 示例相比,您丢弃的我的 Ary 怎么样?
  • @Taplar 我包含了来自 Chrome 的控制台输出。内容是一样的,但它缺少顶部的计数以及 [{...},{...},{...}] 这让我相信它的格式不正确。
  • jsfiddle.net/q3s3o4ja/2 在我看来是一样的。
  • jsfiddle.net/q3s3o4ja/3 它们似乎都有效。
  • @Taplar 我没有提供所有信息。该代码是 AJAX GET 成功函数的一部分。奇怪的是,根据我建立/调用它的位置,数组采用不同的形式——在 AJAX 函数内部或外部。让我再做一些工作,我会回复的。感谢您帮助我走到这一步。

标签: javascript jquery json xml jstree


【解决方案1】:

这可能会有所帮助(来自 jQuery 文档):

$.each() 函数与 $(selector).each() 不同,后者用于以独占方式迭代 jQuery 对象。

您正在使用的方法接受一个选择器参数,但您传递给它的是一个 JSON 对象的名称。

尝试使用$.each()

【讨论】:

  • @Taplar 谢谢。 OP 不包含 XML 源代码,所以我离开了文档。
猜你喜欢
  • 1970-01-01
  • 2020-07-10
  • 2014-01-05
  • 2013-05-25
  • 1970-01-01
  • 2019-07-27
  • 2021-03-08
  • 2016-06-29
  • 1970-01-01
相关资源
最近更新 更多