2012-01-04 34 views
7

Estoy construyendo un div y anexándolo a un div principal. Al hacer esto, necesito obtener la altura del div tan pronto como lo construya y antes de anexarlo.Jquery - Obteniendo la altura del div construido

por ejemplo,

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

En mi cuerpo de la etiqueta,

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

por favor me ayude en esto. Gracias por adelantado.

Respuesta

6

No creo que pueda obtener la altura de ningún objeto que cree en tiempo de ejecución antes de anexarlo al documento.

jQuery ejecuta y obtiene el resultado de todos los objetos listos para DOM disponibles en el documento (su html) Por lo tanto, antes de agregar, no puede obtener la altura.

Si aún desea obtener la altura, puedo sugerirle un lugar temporal div en html donde puede agregar su div actual y verificar la altura. si lo desea y anexe el div donde desee más tarde.

Espero que lo anterior le ayude a encontrar la solución ...

+0

Maldita sea, lo extrañé por completo, eso tiene sentido, gracias Murtaza. – Max

+0

¡eres bienvenido! – Murtaza

8

Un div que no se ha agregado al dom no tiene una altura.

Lo que puede hacer es ocultar el div, tiene que poner y obtener la altura y luego mostrar el 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

insertarlo con style="display: none", y luego usar el jQuery normal. altura() para obtener la altura. Muéstralo con .show() cuando sea necesario.

+2

Cuando visualiza: ninguno, le quita el diseño. –

Cuestiones relacionadas