【问题标题】:convert parent/child data to HTML tree structure using jquery使用 jquery 将父/子数据转换为 HTML 树结构
【发布时间】:2012-03-13 23:56:22
【问题描述】:

我有一个 Java 列表,其中包含具有分层数据(id、名称、parentId)的对象,并且需要生成具有展开/折叠功能的 HTML 树结构(使用类似 DynaTree 的东西)。我见过的所有示例都需要生成嵌套的<ul> 结构来表示父/子/.../n-child/ 层次结构等。

我可以转换数据来构建这个结构。但是,我认为这种数据格式可以以其当前形式(id/name/parentId)工作。是否有可以处理这些数据的 jquery API?

这是一个简短的例子..

//Category has an id, name, parentId
List<Category> categoryTree = new ArrayList<Category>();
categoryTree.add(new Category(1, 'root', null));
categoryTree.add(new Category(2, 'colors', 1));
categoryTree.add(new Category(3, 'blue', 2));
categoryTree.add(new Category(4, 'red', 2));
categoryTree.add(new Category(5, 'shapes', 1));
categoryTree.add(new Category(6, 'round', 5));

//now, I need to convert this to dynamic javascript to build the tree structure (<ul>, etc)

我以前使用过这样的 SmartGWT,将其转换为树节点结构很简单(请参阅this example)。我认为有一个 jQuery API 可以做同样的事情......也许不是

【问题讨论】:

  • 1.代码示例在哪里? 2. 你不按现在的方式做的原因是什么? 3. 使用&lt;ul&gt; 技术的代码在哪里,以便有人可以考虑改进或优化它?
  • 您只能使用具有适当嵌套和边距或填充的 DIV 元素来显示关系。属性和值可以使用 SPAN 元素。我认为这比使用列表的结构更简单、更灵活。是否使用 jQuery 无关紧要。
  • @bPratik,查看指向 DynaTree 的链接......这是他们正在寻找的格式......
  • @RobG,jquery 是相关的,因为我想要一个树结构(展开/折叠、嵌套等)......并且不想在 Javascript/CSS 中重新发明轮子
  • @boday — 执行此操作的代码非常简单,在任何情况下,首先创建一个合适的设计(根据您拥有的任何标准)然后看看如何最好地实现它。跨度>

标签: java javascript jquery html


【解决方案1】:

这是一个可能有帮助的演示

http://jsfiddle.net/charlietfl/pCsZ3/

它解析无限深的对象,没有很多 jQuery,整个树只使用一个附加到 DOM

如果从列表中解析,那么首先创建对象会更有效,否则你会做很多额外的附加到 DOM,这不是很有效

【讨论】:

  • 谢谢 charlie,如果我有这种格式的数据,那就太好了...只是尝试重用我拥有的 id/name/parentId 结构...可能只是咬紧牙关并转换它匹配,但我想我会问:)
  • 嵌套必须在某处完成,除非您不打算像按需加载那样立即加载子项,例如单击树中的文件夹,在这种情况下,您可能能够以不同的方式处理事情
  • 猜 SmartGWT 树 API 把我宠坏了……它在这种结构下工作得很好,但我们只是放弃了它,我需要转换成旧的 html/css/jquery……再次感谢跨度>
  • 也许 jstree 可能有好处...jstree.com 然后建模数据以适应它
猜你喜欢
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 2013-03-25
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多