【问题标题】:Accessing FancyTree Node Data in JavaScript在 JavaScript 中访问 FancyTree 节点数据
【发布时间】:2015-01-15 05:51:29
【问题描述】:

我是第一次使用 FancyTree,我想定义一些自定义节点数据,特别是用于创建树的 HTML 数据中名为“content”的属性:

    <li id="xxxx" data-content="true"  class="folder">

我有一个用 JavaScript 编写的 init 事件处理程序,我想在那里访问我的自定义数据属性:

init: function(event, data, flag)
   {
    var tree = $("#tree").fancytree("getTree");
    node = tree.getNodeByKey(key);
    var data = node.data;

在一个在线教程中,我看到我的自定义属性可以作为 node.data.content 访问,但我无法在 alert 框中显示我的自定义属性来证明它是实际定义。如何在我的 JavaScript 函数中访问我的自定义数据属性?

谢尔顿

【问题讨论】:

  • 嗨,如果你能发布你的代码,html/js,那就太好了
  • 没有意识到我的 HTML 不可见,所以我已经更正了,IndieRok。我还添加了事件处理程序的 sn-p。如果您需要查看更多代码,请告诉我...

标签: javascript html fancytree


【解决方案1】:

好的,所以我终于让它工作了。你接近得到你的结果。

key 变量是一个字符串,代表树中每个 LI 元素的“id”属性。您将获得具有该密钥的节点。获取节点后,您可以检索与该节点关联的自定义数据属性。由于我们的“数据”变量是一个包含键/值的对象,因此您需要在数据对象上调用它的“键”名称来检索值,例如“data.content”。

JS

$(function () {
    // using default options
    //Caching DOM element
    var $myTree = $("#tree").fancytree();
    // Get the DynaTree object instance
    var tree = $myTree.fancytree("getTree");
    //Set my key
    var key = "id1";
    //Get the node
    var node = tree.getNodeByKey(key);
    //Get the custom data attribute associated to that node
    var data = node.data;
    //data is an object so, data.content will give you the value of the attribute
    alert(data.content);
});

JSFIDDLE

希望这会有所帮助!

【讨论】:

  • 天啊;我整个下午都被困在这上面。你是摇滚明星,而不仅仅是独立类型 :) 谢谢!
  • 哈哈,快乐是我的全部。但我不得不承认,他们的文档有点缺乏深度并且有点杂乱无章。我不得不寻找他们旧的(和过时的)文档页面,该页面更全面。我有点理解为什么一个人会感到有点失落。
  • 是的,没有一个地方可以解释所有 FT 功能。但我会记住,较旧的 Dynatree 文档更好。我即将第一次在 JavaScript 中创建一个子节点,所以我可能需要查阅那个旧文档,如果它是一个更好的阅读:)
  • @SheldonR。这是我找到的旧文档。 LINK。请注意,某些方法可能已更改或已删除。该页面没有指定插件的版本,尽管我觉得它可能是合法的,因为页面更新日期指定为 2014 年 12 月 31 日。
  • 具有讽刺意味的是,DynaTree 文档是我在 Google 搜索“FancyTree addNode”时的热门搜索之一。我认为他们需要分解并将其包含在 FancyTree 页面上。感谢第二次协助;你是 FancyTree 大师 :)
猜你喜欢
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多