我目前有以下代码
var temp = node.append("text")
.attr("dx", function(d) { return -8; })
.attr("dy", -4)
.style("text-anchor", function(d) { return d.root ? "start" : "end"; })
.style("font-size", function(d) { return d.selected ? "16px" : "10px"; })
.style("font-weight", function(d) { return d.selected ? "bold" : ""; })
.text(function(d) { return d.name; });
这工作正常。此代码接收一个字符串但是形式
streamname(module<-module<-module)
如果 json 节点包含 lastModuleSelected=true,我只希望最后一个模块以粗体显示,而不是全部;如果 lastModuleSelected=false,我只希望流名以粗体显示,而不是全部。
我该怎么做呢?这当然是在许多节点上运行的,所以我不确定如何正确附加两个文本元素,因为字符串长度的大小不同......我仍然想要一个字符串,但它的一部分是粗体,一部分是正常的。有没有办法做到这一点?
注意:d.root、d.selected 和 d.name 是接收到的 json 中的属性,我还将添加一个 d.lastModuleSelected 属性。
如果需要的话,我确实可以选择分离出流名称和模块列表,如果这样也更容易编写 javascript。IE。而不是 d.name,我可能将 d.streamname 和 d.moduleNameList 作为两个单独的属性。
谢谢,院长