2012-08-29 33 views
8

tôi đang gặp cấu trúc html này:jquery: giá trị sai khi cố gắng để có được chiều cao div

<div class=container> 
    <div class=content> 
      Content goes here 
    </div> 
</div> 

tôi đang đọc to chiều cao div.content sử dụng:

var height = $("div.content").height(); 

sẽ trở lại 17 (trong testcase của tôi)

hoạt động tốt đẹp cho đến nay (khi so sánh nó với chiều cao thực tế bằng cách sử dụng firebug). vấn đề là - khi điền văn bản liên tục> 2 dòng tôi nhận được một giá trị sai. 2 dòng sẽ cho tôi 34 (chính xác) nhưng 3 dòng cũng sẽ trả lại 34 mặc dù chiều cao thực tế là 51. tất nhiên, khi điền vào nhiều văn bản giá trị kết quả là tất cả sai. có vẻ giống như một lỗi jquery với tôi .. bất kỳ ý tưởng cho một workaround? nhờ

ps: hoạt động hoàn hảo trong IE, firefox trả về một giá trị sai ..

+0

thể trùng lặp: http://stackoverflow.com/questions/11665657/how-to-calculate-elements-width-and-height-with-their-padding-margin-values-u –

Trả lời

30

Sử dụng $("div.content").outerHeight(); để thay thế.

Nếu bạn thêm -true- vào dấu ngoặc đơn nếu bạn muốn bao gồm tất cả các lề & phần đệm. $('div.content').outerHeight(true);

Cũng tầm cao qua trình duyệt có thể khác nếu bạn không có rất tốt CSS reset, hoặc đang xem xét một trình duyệt di sản (IE6/7), nhưng với một tốt reset khác biệt của họ sẽ rất rất nhỏ .

jsFiddle Demo

+0

i chỉ phát hiện ra nó hoạt động trong IE nhưng KHÔNG trong firefox – Fuxi

+0

cũng xảy ra với mẫu jsFiddle của bạn .. – Fuxi

+1

Điều gì xảy ra? Tôi nhận được kết quả tương tự trong Chrome/Firefox và IE. –

Các vấn đề liên quan