2011-09-27 100 views
5

样品的jQuery:是否有可能获得克隆的jQuery对象的高度?

$('document').ready(function(){ 
    var $theP = $('p'); 
    var $theDiv = $('div'); 
    $theP.html($theP.html() + "<br>div height: " + $theDiv.outerHeight()); 
    var $theClone = $theDiv.clone(); 
    $theP.html($theP.html() + "<br>clonded div height: " + $theClone.outerHeight()); 
}) 

直播链接:http://jsbin.com/odujiv/4

在上面跑,你想获得它的高度时,你得到的 '0' 的结果。我认为这是由于克隆的对象尚未放入DOM中。获得高度的唯一方法是首先将克隆的元素添加回DOM?如果是这样,我认为这是可行的,但在我将它重新放入DOM之前处理它会很棒。

+0

这里提出了一个类似于'类似'的解决方案:http://stackoverflow.com/questions/2345784/jquery-get-height-of-hidden-element-in-jquery-1-4-2 – Clive

+0

Yea ,我想这个解决方案是我必须在获得它的高度之前将它添加到DOM中。这可能会起作用。我可以将它添加到DOM中,将其置于屏幕外,获取高度,进行计算,然后将其放在我想要的位置。 –

+1

我已经遇到过这个问题 - 添加到屏幕外的DOM做的伎俩。 – Pat

回答

4

没有,很遗憾。原始HTML元素在没有附加到文档时没有大小,并且jQuery尚未实施解决方法。我认为这是因为互相依赖的HTML元素的大小彼此相关!

-1

试试这个:

$theClone.height(); 

or 

$theClone.css('height'); 
+1

我特别需要outerHeight,但问题是一样的。以上也返回0 –