Javascript D3JS选择全部
我有一段代码:Javascript D3JS选择全部,javascript,d3.js,Javascript,D3.js,我有一段代码: var series, seriesChildren; selection.each(function (data) { series = d3.select(this).selectAll('.my-series').data([data]); series.enter().append('g').classed('my-series', true); console.log(data); seriesChildren = series.se
var series, seriesChildren;
selection.each(function (data) {
series = d3.select(this).selectAll('.my-series').data([data]);
series.enter().append('g').classed('my-series', true);
console.log(data);
seriesChildren = series.selectAll('.seriesChild')
.data(data, function (d) {
return d.x;
});
seriesChildren.enter()
.append('g')
.classed('seriesChild', true);
}
我不明白为什么它会给我以下信息:
<g class="my-series"></g>
没有孩子
应该是:
<g class="my-series">
<g class="seriesChild"></g>
<g class="seriesChild"></g>
...
</g>
...
我做了一个console.log(data)
,我的数据很好,里面有数千个元素
它通过执行seriesChildren=d3.selectAll('.my series').selectAll('.seriesChild')
工作,但不使用seriesChildren=series.selectAll('.seriesChild')
我使用的是D3JS v4。这两个语句是不同的
1。seriesChildren=series。选择all('.seriesChild')
2。seriesChildren=d3.selectAll(“.my series”).selectAll(“.seriesChild”)
在第1个系列中不是DOM元素,因此seriesChildren=d3.selectAll('.my series')。selectAll('.seriesChild')
将无法按预期工作
而在第二种情况下,
d3.selectAll('.my series')
这表示一个DOM元素,而且d3.selectAll('.myseries').selectAll('.seriesChild')
将选择另一个DOM元素。嵌套选择的数据方法似乎不正确。您必须共享数据数组的结构(不是全部,只是几个元素)。