D3.js 如何使用call函数?

D3.js 如何使用call函数?,d3.js,D3.js,假设我有一些类行的g元素。所以我可以写: var lines = svg.selectAll('.line'); lines.exit().remove(); lines.transition().append('text') lines.enter().append('g').attr('class', 'line'); 然后为每个g.line元素调用append('text')。如果我想调用自定义函数f而不是append呢?我想这应该使用call函数,但是: 行。call(f)只调用f一次

假设我有一些类行的g元素。所以我可以写:

var lines = svg.selectAll('.line');
lines.exit().remove();
lines.transition().append('text')
lines.enter().append('g').attr('class', 'line');
然后为每个g.line元素调用append('text')。如果我想调用自定义函数f而不是append呢?我想这应该使用call函数,但是:
行。call(f)
只调用f一次(使用所有数据,但我想为每个元素分别启动f)

幸运地发现这是可能的,不确定是否有更好的smth: lines.transition().每个函数(基准、索引){ renderDataLine(d3.select(this),数据[索引],…);
});

您可能想查看每个
,请参见

我引述:

为当前选择中的每个元素调用指定的函数


我设置了一个小提琴(手表控制台)

几分钟前也发现了这个,这很有趣,因为我对它感兴趣已经有几天了。我唯一不喜欢的是,我被迫使用d3。选择(这个)看起来有点垃圾。@PetrAveryanov你有没有碰巧有一把小提琴或是一些你想做的事情的例子?但是很好,你找到了。每个都是:)但是我不能把它放到某个函数:)这是至关重要的,因为这里不仅有append,还有append('g')。selectAll('.point')。enter()。append。。。最后利用二维阵列数据。但好吧,我想我现在对每一个都很满意,我们可以结束这一切。我理解你的情况,没有每一个你都可以做到。如果您有时间,您可以设置另一个更接近您的用例的数据,我可以看到我可以在这方面提供帮助。但是嵌套这些东西是绝对可能的(只是很难跟踪所有变量和更新:)