Я пытаюсь получить ширину связки элементов text
, которые я создал с помощью d3.js
Вот как я их создаю:
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;
});
Затем я использую ширину для создания rectangles
того же размера, что и теги text
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;
})
Я попробовал использовать метод Bbox от здесь, но я этого не понимаю. Я думаю, что выбор фактического элемента - это то, где я ошибаюсь.