Javascript 如何从d3功能在控制台中打印
我有这个函数来画矩形:Javascript 如何从d3功能在控制台中打印,javascript,d3.js,Javascript,D3.js,我有这个函数来画矩形: draw(data) { this.canvas.selectAll('rect') .data(data) .enter() .append('rect') .attr('x', (d) => d.x) .attr('y', (d) => d.y) .attr('width', (d) => d.width) .attr('heigh
draw(data) {
this.canvas.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr('x', (d) => d.x)
.attr('y', (d) => d.y)
.attr('width', (d) => d.width)
.attr('height', (d) => d.height)
.style('fill', (d) => d.color);
}
我想在控制台d.x和d.y中打印。我编写了这个函数:
printData(data) {
this.canvas.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr('x', function(d) { console.log(d.x); });
}
但它并没有在控制台中打印任何内容。有人能帮我指出我做错了什么吗?我想你是在
绘图之后马上打电话给printData
。如果是这种情况,您将看不到任何内容,因为您的“enter”选择是空的(因此,enter()
之后不会调用任何内容)
在这种情况下,解决方案就是将console.log
移动到draw
或在printData
中使用each()
:
printData(data) {
this.canvas.selectAll('rect')
.each(function(d) {
console.log(d.x);
});
}