Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 测量文本节点的高度_Javascript_Jquery - Fatal编程技术网

Javascript 测量文本节点的高度

Javascript 测量文本节点的高度,javascript,jquery,Javascript,Jquery,是否有任何方法可以测量文本节点的高度,而无需对其进行包装 我尝试了无用的本机方法node.style.height,然后是node.clientHeight,然后是jQuery方法$(node.height() 它给了我javascript错误uncaughttypeerror:无法读取未定义的属性“height” 这是我的游乐场:您可以尝试获取TextNode的边界框(使用范围,将高度设置为边界框的高度): 并将textNode替换为类似document.body.firstChild的内容

是否有任何方法可以测量文本节点的高度,而无需对其进行包装

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

它给了我javascript错误
uncaughttypeerror:无法读取未定义的属性“height”


这是我的游乐场:

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

并将textNode替换为类似
document.body.firstChild的内容

部分代码取自


你的意思是除了在开发工具中打开它并查看计算出的高度之外?是的,我需要它在javascript中用于。。。它是动态生成的混合内容,我需要知道它足够了:)它似乎工作得很好:@ManofSnow问题是,“不包装它”不,我需要测量文本节点,它是一个没有任何标记的简单文本,或者我不明白为什么会有否决票,它与非文本包装的文本节点一起工作这行似乎是一个很好的答案,我也不明白否决票,所以我会修正it@XGreen谢谢,看起来他们没有被否决:)我可以看到否决票,因为你复制并粘贴了另一个问题的答案。这个问题应该作为一个重复的问题结束,引用你复制的答案。我不相信复制/粘贴答案会增加堆栈溢出的价值。。。我真的认为OP应该先搜索堆栈溢出,答案很明显,只需快速搜索即可。。。但真正奇怪的功能:)测试
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;
        }
    }
}