2014-09-24 72 views
1

试图找出d3中的默认按键功能。什么是d3默认键功能?

如果三个<p>要素包括我在我的html身体有0,1,2键,而我使用D3 enter()功能追加<p>元素与0,1,5键为什么我的D3代码添加所有<p>元素到我的页面,而不是只有密钥为5的<p>

<html> 
    <head> 
      <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> 
    </head> 

     <body> 

      <p>joe</p> 
      <p>joe</p> 
      <p>joe</p> 

      <script type="text/javascript"> 

       d3.select("body").selectAll("p") 
        .data([ 0, 1, 5], function(d){ return d; }) 
        .enter() 
        .append("p") 
        .text(function(d){ return d; }); 

      </script> 

     </body> 
</html> 

的jsfiddle: http://jsfiddle.net/266z3dr1/

回答

3

From the documentation:

如果未指定key函数,则指定数组中的第一数据被分配到所述第一元件在当前的选择,所述第二个数据添加到第二个选定元素,依此类推。

您正在获得三个新元素,因为现有的元素都没有键。数据关联是基于索引(默认)或基于键(如果传递了键功能)。

+2

小的说明:现有的元素都没有数据绑定到它可以从中提取密钥。在这种情况下,绑定到元素的整个数据将是关键。 – 2014-09-24 17:20:04

相关问题