Obter largura do elemento de texto SVG do d3.js após a criação
Estou tentando obter as larguras de um monte detext
elementos que eu criei com o d3.js
É assim que os estou criando:
var nodesText = svg.selectAll("text")
.data(dataset)
.enter()
.append("text")
.text(function(d) {
return d.name;
})
.attr("x", function(d, i) {
return i * (w / dataset.length);
})
.attr("y", function(d) {
return 45;
});
Estou então usando a largura para criarrectangles
o mesmo tamanho que otext
caixas de
var nodes = svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", function(d, i) {
return i * (w / dataset.length);
})
.attr("y", function(d) {
return 25;
})
.attr("width", function(d, i) {
//To Do: find width of each text element, after it has been generated
var textWidth = svg.selectAll("text")
.each(function () {
return d3.select(this.getComputedTextLength());
});
console.log(textWidth);
return textWidth;
})
.attr("height", function(d) {
return 30;
})
Eu tentei usar o método Bbox deaqui mas eu realmente não entendo isso. Eu acho que selecionar o elemento real é onde eu realmente estou errado.