【发布时间】:2013-10-17 22:20:42
【问题描述】:
我希望用户能够在 SVG 画布上画一条线。一开始,会显示一个由 1px x 1px 矩形组成的“粗略路径”,然后当用户松开鼠标时,他所描画的线条会转换为 SVG <path>。这是创建矩形的代码:
var svg = d3.select('#svg-overlay'); //SVG Canvas
var roughPath = [];
( ... )
var tx = Math.round(e.pageX - offset.left);
var ty = Math.round(e.pageY - offset.top);
roughPath.push(svg.append('rect')
.attr('width', 1)
.attr('height', 1)
.attr('x', tx)
.attr('y', ty)
.attr('fill', 'white'));
在绘制路径并转换为<path> 之后,我希望能够删除存储在roughPath 中的所有矩形。但是,我不知道如何访问该数组中的元素。 d3.select(roughPath) 不起作用,d3.select(roughPath).selectAll('rect') 和 roughPath.forEach(...) 也不起作用。有人可以建议我如何访问存储在数组中的 d3 元素,或者至少如何删除roughPath 中的所有元素?
【问题讨论】:
标签: javascript arrays svg d3.js