2011-06-13 32 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