使用d3.js并且我有分层数据并且使用这个示例d3 dendrogram几乎满足了我的需求,但是我需要显示一个表而不是文本字符串作为叶子。数据遵循以下模式:
{"name": "root",
"children": [
{"name": "dtable",
"children": [
{"label": "la01", "tag":"section", "title":"Section One"}
{"label": "la02", "tag":"section", "title":"Section Two"}
{"label": "la0201", "tag":"subsection", "title":"Subsection Two:One"}
]
}
}
我希望这个叶子可以像这样呈现:
----------------------------------------------
| label | tag | title |
----------------------------------------------
| la01 | section | Section One |
| la02 | section | Section Two |
| la0201 | subsection | Subsection Two:One |
----------------------------------------------
d3示例有一个片段,它将叶子显示为文本字符串。我不知道如何重新设计或替换代码以显示表格:
nodeEnter.append("svg:text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill-opacity", 1e-6);
答案 0 :(得分:1)
渲染像桌子一样大的东西可能很难在空间上实现。最简单的方法是添加foreignObject
element而不是text
元素,然后创建包含您需要显示的数据的HTML table
。
有关如何使用foreignObject
的示例,请参阅here。您可能还会发现this tutorial对创建实际表格很有帮助。