d3.js选择器不返回实际对象

Pra*_*ant 3 d3.js

我正在使用d3.js v4.我在谷歌浏览器的控制台上执行了以下代码.

var theData = [ 1, 2, 3 ]

var p = d3.select("body").selectAll("p")
          .data(theData)
          .enter()
          .append("p")
          .text("hello ");

console.log(p);
Run Code Online (Sandbox Code Playgroud)

我期待这样的结果:

在此输入图像描述

但我得到的是如下所示

在此输入图像描述

有人可以帮助我为什么会出现这种差异?

Ger*_*ado 8

根据D3 4.x API:

选择不再使用原型链注入子类化Array; 它们现在是普通物体,提高了性能.

因此,在D3版本4.x中,选择对象.

此外,值得一提的是,您使用的是压缩版本(https://d3js.org/d3.v4.min.js),它返回:

zi {_groups: Array[1], _parents: Array[1]}
Run Code Online (Sandbox Code Playgroud)

在正常版本(https://d3js.org/d3.v4.js)中,console.log返回值应为:

Selection {_groups: Array[1], _parents: Array[1]}
Run Code Online (Sandbox Code Playgroud)

如果您想获得类似于D3 v3中的内容,请使用nodes():

var theData = [ 1, 2, 3 ]

var p = d3.select("body").selectAll("p")
          .data(theData)
          .enter()
          .append("p")
          .text("hello ");

console.log(p.nodes());
Run Code Online (Sandbox Code Playgroud)
<script src="https://d3js.org/d3.v4.js"></script>
Run Code Online (Sandbox Code Playgroud)