获取克隆对象的动态高度

时间:2011-07-09 18:10:51

标签: jquery

在jQuery中,我想在克隆对象被附加到主体之前获得它的高度。

注意:我没有在CSS中指定宽度和高度(这是要求)。

有可能吗?

<body>

<style>.square {}</style>

<script>
jQuery(function($) {
    var o = $(".square").clone(true);
    $(o).css('height','auto').html("Some stuff...<br/><br/>");

    // output 0 (Question: how to get the height?)
    console.log($(o).height());

    $(o).appendTo("body");

    // output the height (i.e. 38)
    console.log($(o).height());
});
</script>
<div class="square"></div>
</body>

1 个答案:

答案 0 :(得分:5)

由于在将元素添加到文档之前无法可靠地测量元素,因此一种方法是利用绝对定位将元素放在视口之外:

jQuery(function($) {
    var $o = $(".square").clone(true);
    $o.css("height", "auto").html("Some stuff...<br/><br/>");

    $o.css({
        position: "absolute",
        left: "-10000px"
    }).appendTo("body");

    console.log($o.height());      // Works.

    $o.css("position", "static");  // Reset positioning.
});