我有一个包含复杂组模板的现有SVG。我希望在一些数据的上下文中重用和复制它(selection.data().enter()
)。
<svg>
<g id="template">
*** complex inner ***
</g>
</svg>
我想使用D3根据一些数据克隆这个#template,但我希望根据数据修改每个克隆。
d3.select("svg").selectAll('g')
.data(['red', 'blue', 'yellow', 'lime']).enter()
.append(***A CLONE OF MY TEMPLATE****)
.select(***SOMETHING IN MY COMPLEX INNER***)
.attr('fill', function(d){return d;})
这里有一个可以使用数据来克隆的小例子,但我无法修改第一个矩形的填充颜色。
<use>
标签并不实用,因为它引用元素,但是如果要修改所有实例的内部元素,则无法修改单个实例,就像这个SO问题中所述。
事实上,我想使用D3做与这个提案相同的事情。我该怎么做?