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