获取元素的宽度并不追加到Dom

问题描述:

我试图通过使用jQuery的.width()函数来获取元素的宽度。我试图通过将该元素附加到Dom中来获取元素的宽度。获取元素的宽度并不追加到Dom

$('body').append("<span id='longText'></span>"); 
var longElement = $('body').find("#longText"); 
longElement.text(longestMeasure); 
var longeElementWidth = longElement.width(); 

此方法工作正常。但是,我们可以通过不注入Dom来获得元素的宽度吗?

+0

这是不可能的。对于要计算的宽度,元素需要成为DOM的一部分,以便渲染器根据元素与DOM中所有其他元素的关系来计算值。 –

CAN NOT得到它没有它插入到DOM做,但这里有个窍门,我可以想到的,那就是将它插入DOM为隐藏,让你所希望的任何CSS属性事后删除元素。

只有diff到你的代码是我设置显示为无,并在我获得宽度后删除元素。

$(document).ready(function() { 
    $('body').css('display','none').append("<span id='longText'></span>"); 
    var longElement = $('body').find("#longText"); 
    longElement.text(longestMeasure); 
    var longeElementWidth = longElement.width(); 
    longElement(remove); 
} 

哦,我还包装了所有文件准备就绪后执行。