D3.js D3:可以创建元素的子集,但不能更新它们
我有一个数据集,其中一个元素是另一个长度可变的数据集(我们称之为“dataset2”) 我创建了一个复杂的绘图:D3.js D3:可以创建元素的子集,但不能更新它们,d3.js,selection,D3.js,Selection,我有一个数据集,其中一个元素是另一个长度可变的数据集(我们称之为“dataset2”) 我创建了一个复杂的绘图: var group = svg.selectAll('g').data(dataset) var groupEnter = group.enter().append('g') /* Add new elements */ groupEnter.append('line') ... groupEnter.append('polygon') ...
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')
...
到目前为止还不错
现在,我想添加表示“数据集2”的多边形:
这似乎有效;将创建多边形
但是,我无法更新它们:
subGroup.selectAll('.someClass')
...
这没有效果
如果我跑
subGroup.selectAll('.someClass')
.attr('...', function(d) { console.log(d); return ... })
没有输出
我做错了什么?这是因为您没有实际向子组添加
someClass
(至少在您显示的片段中)
也许吧
或者类似的东西(仅上面的片段很难更具体)你是对的:我在“.attr('class','someClass')”中指定了类,但在上面的代码中没有提到它。我修正了这个问题。
subGroup.selectAll('.someClass')
.attr('...', function(d) { console.log(d); return ... })
var subGroupEnter = subGroup.enter().append('polygon').classed('someClass', true)