javascript - D3JS 选择 selectAll

标签 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.selectAll('.seriesChild')
            .data(data, function (d) {
                return d.x;
            });

    seriesChildren.enter()
            .append('g')
            .classed('seriesChild', true);
}

我不明白为什么它会给我以下内容:

<g class="my-series"></g>

没有 child 。

应该是:

<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.selectAll('.seriesChild')

2。 seriesChildren = d3.selectAll('.my-series').selectAll('.seriesChild')

In 1st series 不是 DOM 元素,因此 seriesChildren = d3.selectAll('.my-series').selectAll('.seriesChild') 不会像您期望的那样工作

而在第二种情况下,d3.selectAll('.my-series') 这表示一个 DOM 元素,而 d3.selectAll('.myseries').selectAll('.seriesChild ') 将选择另一个 DOM 元素。

关于javascript - D3JS 选择 selectAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46059793/

相关文章:

javascript - 在 nvd3 结构中使用 d3 和 json 的多折线图

svg - 如何在 SVG 中居中 90º 旋转文本

javascript - 使 jQuery 图像 slider 停在最后一张图像并添加下一个和上一个按钮

javascript - CryptoJS 加密所需的 JS 库

javascript - 在 props 中将函数传递给 React 组件

javascript - d3.js 行与 React

javascript - 将 d3.js 与 jquery 函数调用结合起来

javascript - 最适合(计算机)网络图的布局

javascript - 显示的 Angular Bootstrap 进度条进度不正确

javascript - 使用映射类型时,如何在 TypeScript 中推断对象属性的值?