2012-01-04 15 views
7

Bir div yapıyorum ve onu bir ana div'e ekliyorum. Bunu yaparken oluşturduğumda ve eklemeden önce divun yüksekliğini almam gerekiyor. JQuery - Oluşturulan divanın yüksekliğini alma

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

bu konuda bana yardım edin Örnek için

, bedenim Etiketi yılında

<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> 

. Şimdiden teşekkürler.

cevap

6

Çalışma zamanında oluşturduğunuz herhangi bir nesnenin yüksekliğini belgeye eklemeden önce alabileceğinizi düşünmüyorum.

jQuery, belgedeki tüm DOM hazır nesnesinin sonucunu yürütür ve elde eder (html'niz).

Eğer hala yüksekliğe sahip olmak istiyorsanız, mevcut div'unuzu ekleyebileceğiniz ve yüksekliği kontrol edebileceğiniz html üzerinde geçici bir yer div önerebilirsiniz. Eğer istersen ve daha sonra istediğin div'u eklersen. hiçbiri, sen düzenini götürmek:

görüntülemek zaman

+0

Lanet olsun Tamamen özledim, Bu mantıklı, teşekkürler Murtaza. – Max

+0

size bekliyoruz! – Murtaza

8

Dom'a eklenmemiş bir divın yüksekliği yoktur.

$(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

style="display: none" ile yerleştirin ve sonra da normal bir jquery kullanın:

Ne yapabilirsiniz ekler, sonra div gizlemek ve yüksekliğini almak ve sonra div göstermek olduğunu. yüksekliği elde etmek için yükseklik(). Gerektiğinde .show() ile göster.

+2

... Yukarıdaki çözüm bulmak için yardımcı olur. –

İlgili konular