测量文本节点的高度

时间:2014-01-08 22:14:05

标签: 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/

1 个答案:

答案 0 :(得分:2)

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

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

并将{strong> textNode 替换为document.body.firstChild;

部分代码取自Measure bounding box of text node in Javascript

<强> DEMO