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元素。

嵌套选择的数据方法似乎不正确。您必须共享数据数组的结构(不是全部,只是几个元素)。