首页 > 解决方案 > 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));
    });

小提琴

标签: javascriptd3.js

解决方案


  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(_children变空了,children取值,改了就ok了)

小提琴


推荐阅读