Javascript 根据d3.js中的d属性向文本中添加可变数量的tspan元素 var span={}; var计数器=0; var f=0; labelT.每个(功能(d,i){ var splitted=d.name.split(“”); console.log(拆分); 对于(变量k=0,f=0;k
我想向labelT变量添加尽可能多的tspan,这是一个文本元素,取决于var数组中拆分的单词数量。这将为每个单词产生一个新行。问题是,我不知道如何选择当前的labelT元素。我尝试了for循环中的alread labelT.select和发布的selection版本。有人能帮忙吗?Javascript 根据d3.js中的d属性向文本中添加可变数量的tspan元素 var span={}; var计数器=0; var f=0; labelT.每个(功能(d,i){ var splitted=d.name.split(“”); console.log(拆分); 对于(变量k=0,f=0;k,javascript,d3.js,Javascript,D3.js,我想向labelT变量添加尽可能多的tspan,这是一个文本元素,取决于var数组中拆分的单词数量。这将为每个单词产生一个新行。问题是,我不知道如何选择当前的labelT元素。我尝试了for循环中的alread labelT.select和发布的selection版本。有人能帮忙吗? 谢谢 虽然上述解决方案确实有效,但您应该能够使用“more-D3-style”解决方案将数据重新绑定到元素。请注意,我尚未测试此代码,因此您可能需要修改它以使其100%正常工作: var spans = {};
谢谢 虽然上述解决方案确实有效,但您应该能够使用“more-D3-style”解决方案将数据重新绑定到元素。请注意,我尚未测试此代码,因此您可能需要修改它以使其100%正常工作:
var spans = {};
var counter = 0;
var f = 0;
labelT.each(function(d,i){
var splitted = d.name.split(" ");
console.log(splitted);
for(var k = 0,f = 0; k < splitted.length; k++,f += 1.2){
spans[k] = labelT.select(this).append("tspan")
.attr("class", "tspan"+counter)
.attr("dy",f+"em")
.attr("x",0)
.text(function(d){return splitted[k]});
counter ++ ;
}
counter ++;
});
虽然上述解决方案确实有效,但您应该能够使用“more-D3-style”解决方案将数据重新绑定到元素。请注意,我尚未测试此代码,因此您可能需要修改它以使其100%正常工作:
var spans = {};
var counter = 0;
var f = 0;
labelT.each(function(d,i){
var splitted = d.name.split(" ");
console.log(splitted);
for(var k = 0,f = 0; k < splitted.length; k++,f += 1.2){
spans[k] = labelT.select(this).append("tspan")
.attr("class", "tspan"+counter)
.attr("dy",f+"em")
.attr("x",0)
.text(function(d){return splitted[k]});
counter ++ ;
}
counter ++;
});
d3.选择(此)。附加。。。。。。解决了问题并得到了正确的选择。如果您将此作为一个答案(最好有一个好的解释)来写,您可以接受它(运营商可以在几天后接受他们自己的答案)。d3.选择(此)。附加。。。。。。解决了问题并获得了正确的选择。如果您将此作为答案(最好有一个好的解释)来写,您可以接受它(运营商可以在几天后接受他们自己的答案)。谢谢,重新绑定非常好和聪明!唯一不适合我的问题的一行是:.attr('dy',函数setAttr(d,i){return(i*1.2)+'em';})我坚持:.attr('dy',f+“em”),因为这在每次tspants之后都会有一行中断。为此,重新绑定非常好和聪明!唯一不适合我的问题的一行是:.attr('dy',function setAttr(d,i){return(i*1.2)+'em';})我坚持:.attr('dy',f+“em”),因为这在每次tspan后都会有一行中断