2012-01-04 33 views
7

Tôi đang xây dựng một div và gắn nó vào một div chính. Trong khi làm điều này tôi cần phải có được chiều cao của div ngay sau khi tôi xây dựng nó và trước khi gắn nó.Jquery - Bắt chiều cao của div được xây dựng

Ví dụ,

<script> 
$(function(){ 
var text = $("#ObjText").html(); // This text is dynamic 

var dv = $("<div id='childDiv'>"+text+"</div>"); 
alert($(dv).height()); // This is getting '0' - Need to get the height of the div here. 

$("#page").append(dv); 

//After appending to page able to get the height of the child div 
alert($("#childDiv").height()); 
}); 
</script> 

Trong cơ thể Tag của tôi,

<body> 
<div id="page"></div> 
</body> 

Xin hãy giúp tôi ra về vấn đề này. Cảm ơn trước.

Trả lời

6

Tôi không nghĩ rằng bạn có thể nhận được chiều cao của bất kỳ đối tượng nào bạn tạo trong thời gian chạy trước khi thêm nó vào tài liệu.

jQuery thực hiện và nhận kết quả của tất cả đối tượng sẵn sàng DOM có sẵn trên tài liệu (html của bạn) Có trước khi bạn thêm phần bổ sung không thể nhận được chiều cao.

Nếu bạn vẫn muốn có được chiều cao, tôi có thể đề xuất u một địa điểm tạm thời div trên html, nơi bạn có thể nối div hiện tại của bạn và kiểm tra chiều cao. nếu bạn muốn bạn và nối div vào nơi bạn muốn sau này.

Hy vọng điều trên giúp bạn tìm giải pháp ...

+0

Tôi đã hoàn toàn bỏ lỡ nó, Điều đó có ý nghĩa, cảm ơn Murtaza. – Max

+0

bạn được chào đón! – Murtaza

8

Một div chưa được thêm vào vòm không có chiều cao.

Những gì bạn có thể làm là ẩn div, sau đó nối nó và có được chiều cao và sau đó hiển thị div:

$(function(){ 
    var text = $("#ObjText").html(); // This text is dynamic 

    var dv = $("<div id='childDiv'>"+text+"</div>").hide(); // hide the div 

    $("#page").append(dv); 
    alert(dv.height()); // should have the correct height 

    dv.show(); 
}); 

http://jsfiddle.net/MPtvK/

-2

Chèn nó với style="display: none", và sau đó sử dụng jquery bình thường. chiều cao() để có được chiều cao. Hiển thị nó với .show() khi cần.

+2

Khi bạn hiển thị: không, bạn lấy bố cục. –

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