在D3.js中使用数据功能时获取下一个或上一个结果

时间:2017-07-10 21:02:48

标签: javascript d3.js charts

我正在使用图表库 d3.js ,我正在循环浏览一些数据,例如..

thresholds = plot.select('.thresholds').selectAll('.threshold').data(chart.Thresholds);

......然后做类似的事情:

thresholds.attr('height', function(data) {
  // How can I access the data.whatever values in here from the previous or next result in the data set?
});

在上面的例子中,有没有办法可以访问数据集中的上一个或下一个结果?

1 个答案:

答案 0 :(得分:0)

来自d3 docs

  

selection.attr(name [,value])<>

     

如果指定了值,则将具有指定名称的属性设置为   所选元素上的指定值并返回此值   选择。如果值是常量,则所有元素都给出相同的值   属性值;否则,如果值是函数,则为   评估每个选定的元素,按顺序通过   当前数据(d),当前索引(i)和当前组   (节点),将其作为当前DOM元素(nodes [i])。该   然后使用函数的返回值来设置每个元素的属性。   空值将删除指定的属性。

您可以使用索引访问上一个或下一个:

thresholds.attr('height', function(data, i) {

   if(i>0) {
     var myvar = chart.Thresholds[i-1]
   } else {
    // Handle first case
   }

   if(i<(chart.Thresholds.length-1)) {
     var myothervar = chart.Thresholds[i+1]
   } else {
    // handle last case
   }

});