我试图使用d3获取所有匹配元素中的数据.我有以下代码
d3.selectAll('svg').selectAll('.line').data()
Run Code Online (Sandbox Code Playgroud)
我期望它应该返回所有匹配元素中的数据.但它只是在第一个匹配元素中返回数据.
如果我这样做的话
d3.selectAll('svg').selectAll('.line')
Run Code Online (Sandbox Code Playgroud)
这表明它有2个group元素,其data属性包含数据.
如果我这样做var line = d3.selectAll('svg').selectAll('.line'); line[0].data()
会给我错误.因为line [0]成为没有任何属性的DOM元素
如何在所有匹配的选择中获取数据或我不清楚如何使用它.
这是selection.data(values)
读取规范的预期行为:
如果未指定值,则此方法返回选择中第一个组的数据数组.
这就解释了为什么你只得到绑定到第一组的数据.
要访问绑定到您的选择返回的所有组的数据,您可以使用:
d3.selectAll('svg').selectAll('.line').each(function(d) {
// Within this function d is this group's data.
// Iterate, accumulate, do whatever you like at this point.
});
Run Code Online (Sandbox Code Playgroud)