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

时间:2016-10-04 12:50:58

标签: d3.js

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

var theData = [ 1, 2, 3 ]

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

console.log(p);

我期待这样的结果:

enter image description here

但我得到的是如下所示

enter image description here

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

1 个答案:

答案 0 :(得分:6)

根据D3 4.x API

  

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

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

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

zi {_groups: Array[1], _parents: Array[1]}

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

Selection {_groups: Array[1], _parents: Array[1]}

如果您希望获得与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());
<script src="https://d3js.org/d3.v4.js"></script>