2014-09-24 66 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