Javascript d3选择更改节点基准

Javascript d3选择更改节点基准,javascript,d3.js,Javascript,D3.js,在我的d3图表中,我有时使用父节点创建节点。selectAll().data()。 然后稍后使用父节点检索创建的节点。选择()继续更改其子节点。我面临的问题是,当我再次选择它时,d3似乎正在更改节点的\uuuu data\uuuu,它将给它父节点的数据,而不是我在selectAll调用中分配给它的数据 我在JSFIDLE中重现了这个问题: 我做错什么了吗?如何在不覆盖其\uu数据的情况下再次选择已创建的节点?使用进行子选择。select()具有: 如果当前元素具有关联数据,则返回的子选择将继承

在我的d3图表中,我有时使用父节点创建节点。selectAll().data()。 然后稍后使用
父节点检索创建的节点。选择()
继续更改其子节点。我面临的问题是,当我再次选择它时,d3似乎正在更改节点的
\uuuu data\uuuu
,它将给它父节点的数据,而不是我在
selectAll
调用中分配给它的数据

我在JSFIDLE中重现了这个问题:


我做错什么了吗?如何在不覆盖其
\uu数据的情况下再次选择已创建的节点?

使用
进行子选择。select()
具有:

如果当前元素具有关联数据,则返回的子选择将继承该数据,并自动绑定到新选择的元素

这就是你所看到的,而且是故意的。在您的情况下,解决方案是使用
.selectAll()
而不是
。select()
作为子选项:

level2Elem = level2Holder.selectAll('.level2');
改良提琴