D3树布局仅向叶节点添加“标题”

时间:2013-04-20 01:52:18

标签: javascript d3.js

我可以使用

向树中的所有节点添加title
node.append("svg:title").text(function(d) { return d.name + " " + d.size }); 

如何仅将title添加到叶节点?

我试过了:

node.selectAll('g.leaf.node text').text("title", function(d) { return d.name + " " + d.size }); 

但这不起作用。

所有节点上都有标题的示例

http://jsfiddle.net/chrisloughnane/EcU2c/

1 个答案:

答案 0 :(得分:3)

您可以检查当前节点是否有子节点,只有在没有子节点时才添加标题。代码是

node.append("svg:title").text(function(d) {
    return d.children ? "" : d.name + " " + d.size;
});

请注意,你可以类似地设置一个g.leaf.node类,这样如果你有几件特定的东西,你就可以更容易地操作所有的叶子。