D3.js树-如果没有子节点,请检查并设置填充圆圈节点为白色?

时间:2019-05-29 07:42:43

标签: javascript d3.js

如何检查节点是否有子节点,如果没有子节点,如何将圆圈的填充设置为白色?

当前使用:

var colourScale = d3.scale.ordinal()
  .domain(["MD", "Professional", "Leader", "Advocate", "Clinician"])
  .range(["#6695c8", "#cd3838", "#d48440", "#a8ba5f", "#63b7c0"]);

nodeUpdate.select("circle")
    .attr("r", 10)
    .attr("fill-opacity","0.7")
    .attr("stroke-opacity","1")
    .style("fill", function(d) {
      return colourScale(findParent(d));
    })
    .style("stroke", function(d) {
      return colourScale(findParent(d));
    });

Fiddle

1 个答案:

答案 0 :(得分:2)

  nodeUpdate.select("circle")
    .attr("r", 10)
    .attr("fill-opacity", "0.7")
    .attr("stroke-opacity", "1")
    .style("fill", function(d) {
    console.log(d);
    return (typeof d._children !== 'undefined') ? (colourScale(findParent(d))) : '#FFF';
    })
    .style("stroke", function(d) {
    return colourScale(findParent(d));
    });

编辑: 这里的问题是您的第一个节点没有_children属性,但是有children属性。因为在单击时添加了子项(_children变为空,并且子项采用了该值。更改该值就可以了)

Fiddle