Javascript 在d3.js中组合来自不同元素的数据

Javascript 在d3.js中组合来自不同元素的数据,javascript,d3.js,Javascript,D3.js,我试图在d3.js中创建一个矩形文本。我将它们放在一个svg组中。必须首先创建矩形,使其位于底部,但在将数据绑定到文本框后,我必须再次设置矩形的宽度,我不确定如何进行设置 对于数据[“hello”,“world”]html的外观应该是这样的(不包括一系列属性): 在这个块之后,我尝试设置矩形宽度,如下所示: rects.attr("width", function (d, i) {return text[i].getComputedTextLength();}); 或者像这样: rects.a

我试图在d3.js中创建一个矩形文本。我将它们放在一个svg组中。必须首先创建矩形,使其位于底部,但在将数据绑定到文本框后,我必须再次设置矩形的宽度,我不确定如何进行设置

对于数据
[“hello”,“world”]
html的外观应该是这样的(不包括一系列属性):

在这个块之后,我尝试设置矩形宽度,如下所示:

rects.attr("width", function (d, i) {return text[i].getComputedTextLength();});
或者像这样:

rects.attr("width", function (d, i) {return text[i][0].getComputedTextLength();});

这两个都会抛出错误(第一个表示对象数组没有函数getComputedTextLength,第二个表示“无法读取未定义的属性“0”)。如何从另一个选择中访问一个选择的属性?

Hah!解决了。我需要切换索引的顺序:
rects.attr(“宽度”,函数(d,I){返回文本[0][I].getComputedTextLength();})有效。请将您的解决方案也作为答案发布
rects.attr("width", function (d, i) {return text[i].getComputedTextLength();});
rects.attr("width", function (d, i) {return text[i][0].getComputedTextLength();});