我有一个数据集,其中一个元素是另一个可变长度的数据集(让我们称之为" dataset2")。
我创建了一个复杂的情节:
var group = svg.selectAll('g').data(dataset)
var groupEnter = group.enter().append('g')
/* Add new elements */
groupEnter.append('line')
...
groupEnter.append('polygon')
...
groupEnter.append('text')
...
/* Update elements */
group.select('line')
...
group.select('polygon')
...
group.select('text')
...
到目前为止一切顺利。
现在,我想添加代表" dataset2":
的多边形var subGroup = group.selectAll('.someClass').data(function(d) { return d['dataset2'] })
var subGroupEnter = subGroup.enter().append('polygon')
.attr('class', 'someClass')
...
这似乎有效;多边形被创建。
但是,我无法更新它们:
subGroup.selectAll('.someClass')
...
这没有效果。
如果我跑了
subGroup.selectAll('.someClass')
.attr('...', function(d) { console.log(d); return ... })
没有输出。
我做错了什么?
答案 0 :(得分:0)
那是因为您实际上没有将someClass
添加到子组中(至少在您显示的片段中)
也许
var subGroupEnter = subGroup.enter().append('polygon').classed('someClass', true)
或者类似的东西(很难用上面的片段更具体)