2011-06-13 34 views
2

我想知道是否有可能在javascript/jQuery中获取内容的大小(不是div)。因此,如果该框的高度为200像素,但只有一行文字,则内容大小约为12像素。获取真实内容的大小

感谢您的帮助

+0

你的意思含量*高* ... – 2011-06-13 00:29:29

+0

感谢您对所有的答案。 但换句话说,我想知道在div滚动条上溢出之前的高点... – Louis 2011-06-13 01:04:56

回答

3

您可以创建一个范围内的元素的文本内容,并使用范围的属性:

/** 
    * @param object o DOMElement 
    * @return int|null boundingHeight 
    **/ 
function fx(o) 
{ 
    if(document.createRange) 
    { 
    var r = document.createRange(); 
     r.selectNodeContents(o); 
    return r.getBoundingClientRect().height; 
    } 
    else 
    { 
    var r = document.body.createTextRange(); 
     r.moveToElementText(o) 
    return r.boundingHeight; 
    } 
    return null; 
} 

http://jsfiddle.net/doktormolle/wArMN/

+0

在Firefox 3.5中不起作用 – thorn 2011-07-12 13:52:54

+0

它也可能在IE4和Netscape Navigator中不起作用,尚未测试它。 – 2011-07-12 21:14:52

0

如果你指的字体大小,你可以用这个检查:

$('div').click(function() 
{ 
    alert($(this).css('font-size')); 
}); 

Demo

+0

我想他们想知道字体大小乘以行数,在它们被包装和布置后。 – icktoofay 2011-06-13 00:44:32