我有一个数据集,该数据集基于我想打印的黑色或红色“警告:joe今天已经观看了14只猫的视频”的值。如果值大于10,则为红色。
在使用d3或html格式时,我该怎么做?

var dataset = [14, 5, 26, 23, 9];
d3.select("body").selectAll("p")
    .data(dataset)
    .enter()
    .append("p")
    .style('fill', 'darkOrange')
    .text(function(d, i){
        for (i=0; i<5; i++)
        {
            result = "Warning: Joe watched " + d + " cat videos today";
        }
        return result;
    });


需要它看起来像这样

javascript - d3-如何根据值更改文本的颜色(如果不是)-LMLPHP

最佳答案

看一下这个

添加样式属性以根据数组的值更改文本的颜色

.style("color", function(d, i) {
      return d > 10 ? "#ff0000" : "#000";
    })


并在.text(function(d,i){}中添加else来根据条件更改文本,请参见我的答案



var dataset = [14, 5, 26, 23, 9];
d3.select("body").selectAll("p")
    .data(dataset)
    .enter()
    .append("p")
    .style('fill', 'darkOrange')
    .style("color", function(d, i) {
      return d > 10 ? "#ff0000" : "#000";
    })
    .text(function(d, i){
        for (i=0; i<dataset.length; i++)
        {
            if(d > 10)
            {
              result = "Warning: Joe watched " + d + " cat videos today";
             }
             else
             {
              result = "Joe watched " + d + " cat videos today";
             }
        }
        return result;
    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://d3js.org/d3.v5.min.js"></script>

08-06 02:36