我正在使用图表库 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?
});
在上面的例子中,有没有办法可以访问数据集中的上一个或下一个结果?
答案 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
}
});