Jquery - 获取构造div的高度

时间:2012-01-04 09:21:05

标签: jquery html

我正在构建一个div并将其附加到主div。在这样做的时候,我需要在构建它之前和附加它之前获得div的高度。

例如,

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

在我的身体标签

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

请帮我解决这个问题。提前谢谢。

3 个答案:

答案 0 :(得分:8)

尚未添加到dom的div没有高度。

你可以做的是隐藏div,然后追加它并获得高度然后显示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/

答案 1 :(得分:6)

我认为在将其附加到文档之前,您可以获得在运行时创建的任何对象的高度。

jQuery执行并获取文档上所有DOM就绪对象的结果(你的html)因此,在追加你之前你无法获得高度。

如果您仍想获得高度我可以建议您在html上临时放置div,您可以附加当前div并检查高度。如果你想要你并将div追加到你想要的地方。

希望以上内容可以帮助您找到解决方案......

答案 2 :(得分:-2)

使用style="display: none"插入,然后使用普通的jquery .height()来获取高度。在需要时用.show()显示它。