Javascript 如何获得一个跨距中文本的高度和宽度而不是整个跨距的宽度和高度

Javascript 如何获得一个跨距中文本的高度和宽度而不是整个跨距的宽度和高度,javascript,html,d3.js,Javascript,Html,D3.js,我是HTML如下所示,我可以只获取文本的高度和宽度,而不是整个span var bounds=d3.select(“.nodeText”).node().getBoundingClientRect(); console.log(bounds.width);//300 console.log(bounds.height);//111 精确765(55.23%) 您可以使用createRange函数 var span=d3.select(“.nodeText”).node(); var tex

我是
HTML
如下所示,我可以只获取文本的
高度
宽度
,而不是整个span

var bounds=d3.select(“.nodeText”).node().getBoundingClientRect();
console.log(bounds.width);//300
console.log(bounds.height);//111

精确765(55.23%)

您可以使用
createRange
函数

var span=d3.select(“.nodeText”).node();
var textNode=span.childNodes[0];
var range=document.createRange();
范围。选择NodeContents(文本节点);
var rect=range.getBoundingClientRect();
变量高度=rect.bottom-rect.top;
变量宽度=rect.right-rect.left;
console.log(“height=“+height,”width=“+width”)


精确的765(55.23%)
我认为你不能简单地处理文本。我要做的是:使文本周围的span/div正好适合文本大小。你是指被包装的文本吗?我试着缩小跨度的宽度(比如说50),计算结果很好。如果文本被包装了呢?现在检查片段。我减小了跨度宽度。现在文本已包装。