测量文本节点的高度

Ser*_*nko 1 javascript jquery

如果有什么方法可以测量文本节点的高度而不包裹它

我尝试过无用的本机方法node.style.height,然后node.clientHeight是 jQuery 方法$(node).height()

它给了我 javascript 错误Uncaught TypeError: Cannot read property 'height' of undefined

这是我的游乐场:http ://jsfiddle.net/acrashik/F99mm/1/

Cil*_*lan 5

您可以尝试获取TextNode 的边界框(使用 Range,将高度设置为边界框的高度):

var height = 0;
if (document.createRange) {
    var range = document.createRange();
    range.selectNodeContents(textNode);
    if (range.getBoundingClientRect) {
        var rect = range.getBoundingClientRect();
        if (rect) {
            height = rect.bottom - rect.top;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并将textNode替换为类似document.body.firstChild;.

一些代码取自Javascript 中测量文本节点的边界框

演示版

  • 我可以看到投反对票,因为您复制并粘贴了另一个问题的答案。这个问题应该作为重复问题关闭,并引用您复制的答案。我不相信它会为 Stack Overflow 复制/粘贴答案增加价值……我真的认为 OP 应该首先搜索 Stack Overflow,通过快速搜索答案是显而易见的。 (2认同)