2011-09-27 17 views
5

mẫu jQuery:là nó có thể để có được chiều cao của một đối tượng jQuery nhân bản không?

$('document').ready(function(){ 
    var $theP = $('p'); 
    var $theDiv = $('div'); 
    $theP.html($theP.html() + "<br>div height: " + $theDiv.outerHeight()); 
    var $theClone = $theDiv.clone(); 
    $theP.html($theP.html() + "<br>clonded div height: " + $theClone.outerHeight()); 
}) 

Live link: http://jsbin.com/odujiv/4

Trong khi đang chạy ở trên, bạn sẽ có được một kết quả của '0' khi cố gắng để có được chiều cao của nó. Tôi nghĩ điều này là do thực tế rằng đối tượng nhân bản chưa được đưa vào DOM. Cách duy nhất để có được chiều cao đầu tiên thêm phần tử nhân bản trở lại DOM? Nếu vậy, tôi nghĩ rằng đó là khả thi, nhưng nó sẽ là tuyệt vời để xử lý nó trước khi tôi đưa nó trở lại vào DOM.

+0

Có giải pháp 'hacky' cho một mục tương tự được đề xuất tại đây: http://stackoverflow.com/questions/2345784/jquery-get-height-of-hidden-element-in-jquery-1-4-2 – Clive

+0

Yea , Tôi tưởng tượng giải pháp là tôi phải thêm nó vào DOM trước khi nhận được chiều cao. Điều đó có thể sẽ hoạt động. Tôi có thể thêm nó vào DOM, vị trí của nó ngoài màn hình, có được chiều cao, làm tính toán của tôi, sau đó vị trí nó, nơi tôi muốn. –

+1

Tôi đã chạy vào điều này trước khi - thêm vào DOM off-screen đã làm các trick. – Pat

Trả lời

4

Không, không may. Các phần tử HTML thô không có kích thước khi không được đính kèm với tài liệu và jQuery chưa triển khai giải pháp thay thế. Tôi cho rằng điều này là do kích thước của các phần tử HTML phụ thuộc lẫn nhau như thế nào!

-1

Hãy thử điều này:

$theClone.height(); 

or 

$theClone.css('height'); 
+1

Tôi đặc biệt cần outerHeight, nhưng vấn đề là như nhau. Ở trên cũng trả về 0 –

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