2016-10-04 55 views
2

我正在使用d3.js v4。我在谷歌Chrome瀏覽器的控制檯上執行了以下代碼。d3.js選擇器不返回實際對象

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

有人可以幫我爲什麼這種差異在那兒?

回答

4

據D3 4.x的API

選擇不再子陣列使用原型鏈注射;他們現在是普通的對象,提高了性能。

所以,在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>