2017-12-18 202 views
0

我試圖通過使用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中所有其他元素的關係來計算值。 –

回答

0

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); 
} 

哦,我還包裝了所有文件準備就緒後執行。