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));
    });

小提琴

  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变为空,并且子项取值。改变它,它会没事的(

小提琴

最新更新