Obtener el ancho del elemento de texto SVG d3.js después de su creación

Estoy tratando de obtener el ancho de un montón detext Elementos que he creado con d3.js.

Así es como los estoy creando:

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;
          });

Entonces estoy usando el ancho para crearrectangles el mismo tamaño que eltextcajas 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;
            })

Intenté usar el método Bbox desdeaquí Pero realmente no lo entiendo. Creo que seleccionar el elemento real es donde realmente me voy mal.

Respuestas a la pregunta(3)

Su respuesta a la pregunta