2012-01-04 12 views
7

Konstruuję div i dołączam go do głównego div. Robiąc to, potrzebuję uzyskać wysokość div, gdy tylko ją skonstruuję i przed jej dołączeniem.Jquery - Uzyskanie wysokości skonstruowanego div

na przykład

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

w moim ciele Tag,

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

Proszę mi pomóc w tej sprawie. Z góry dziękuję.

Odpowiedz

6

Nie sądzę, że można uzyskać wysokość dowolnego obiektu, który utworzysz w środowisku wykonawczym przed dołączeniem go do dokumentu.

jQuery wykonuje i otrzymuje wynik wszystkich obiektów DOM ready dostępnych w dokumencie (Twój html) Tam przed dodaniem nie możesz uzyskać wysokości.

Jeśli nadal chcesz uzyskać wysokość, mogę zasugerować tymczasowe miejsce div na html, gdzie możesz dodać swój obecny div i sprawdzić wysokość. jeśli chcesz i dołącz do div, gdzie chcesz później.

Mam nadzieję, że powyższe pomoże Ci znaleźć rozwiązanie ...

+0

Cholera, zupełnie to przegapiłem, to ma sens, dzięki Murtaza. – Max

+0

serdecznie zapraszamy! – Murtaza

8

Element div, który nie został dodany do domeny, nie ma wysokości.

Co można zrobić, to ukryć div, a następnie dołączyć go i uzyskać wysokość, a następnie pokazać 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

Włóż ją style="display: none", a następnie użyć zwykłego jQuery. height(), aby uzyskać wysokość. Pokaż go z .show(), gdy jest to konieczne.

+2

Kiedy wyświetlasz: brak, zabierasz układ. –

Powiązane problemy