对于d3,* .enter()返回的选择是特殊的,因为它只是即将到来的元素的占位符。不幸的是,这意味着我无法使用* .data()获取与输入元素相关的数据(可能使用* .exit()。data())。
我目前处于这样一种情况,即在初始化这些元素之前,几个转换的时间取决于输入元素的内容。
我的问题是:在实例化数据对象之前,如何获取将链接到数据连接中的输入元素的数据对象数组?
答案 0 :(得分:3)
您可以直接访问选择内的数据结构。在顶层,有一个单元素数组。该元素包含占位符元素,其中包含用于输入选择的数据。你只需要迭代这些元素。
var enterData = selection.data(data)
.enter()[0].map(function(d) { return d.__data__; });
完整演示here。