2014-08-27 81 views
0

使用d3,* .enter()返回的選擇是特殊的,因爲它只是即將到來的元素的佔位符。不幸的是,這意味着我無法使用* .data()(與* .exit()。data()可能)獲取與輸入元素相關的數據。獲取d3.js中輸入選擇的數據

我目前處於這樣一種情況,即在這些元素初始化之前,幾次轉換的時間依賴於輸入元素的內容。

我的問題是這樣的:我如何獲得一個數據對象的數組,這些數據對象在被實例化之前將被鏈接到數據連接中的輸入元素?

回答

3

您可以直接訪問選擇內的數據結構。在頂層,有一個單一的元素數組。元素包含佔位符元素以及爲其輸入選擇綁定的數據。你只需要遍歷這些元素。

var enterData = selection.data(data) 
    .enter()[0].map(function(d) { return d.__data__; }); 

完整演示here