为什么我没有在这里获取日志?我在父项中附加数据,正在创建的子组应该继承它,对吗?
这里我正在创建一个新的SVG组,并附加数据,对于每个数据单元,我想要创建一个组。请帮我找到我失踪的地方?
代码::
var svg = d3.select('body')
.append('svg')
.attr('width', 600)
.attr('height', 300)
.data([[20,30],[40,50]]);
var g = svg
.selectAll('g')
.enter()
.append('g');
g.each(function (d, i) {
console.log(d, i)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.4.0/d3.js"></script>
答案 0 :(得分:2)
我在父级中附加数据,正在创建的子组应该继承它,对吗?
他们确实继承了。您可以将数据添加到SVG并根据它获取您的群组,这不是问题所在。这里的问题只有两件事:
首先,对于你想要的结果(&#34;第一个g应该有[20,30],第二个g应该有[40,50]&#34; ),这应该是数据:
.data([[[20,30],[40,50]]]);
其次,您必须引用父级的数据来创建<g>
s:
.data(d => d)
以下是演示:
var svg = d3.select('body')
.append('svg')
.attr('width', 600)
.attr('height', 300)
.data([[[20, 30],[40, 50]]]);
var g = svg
.selectAll('.g')
.data(d => d)
.enter()
.append('g');
g.each(function(d,i) {
console.log(d,i)
})
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
&#13;