2012-06-01 19 views
2

我有這方面的工作在我的HTML(沒有動態地添加或類似的東西):jQuery的寬度不是在IE

<div id="TEST" style="width:600px; height:300px;"></div> 

,當我這樣做:alert(jQuery("#TEST").width());

......它提醒1280 IE瀏覽器!它在Chrome中提醒600 - 可能會有什麼搞砸?

這些應用的唯一方式:

enter image description here

編輯 我甚至嘗試這樣做,還是1280 ...

jQuery("#TEST").width(600); 
alert(jQuery("#TEST").width()); 

再次編輯

好的,我已經看過jQuer y的實現,這是因爲它是從這返回true如果聲明:

if ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window? 

爲什麼我的div「走路和像窗子一樣嘎嘎」?

+0

如果IE你的意思IE9,它可能是[即(http://stackoverflow.com/questions/10305631/ie9-float-with-overflowhidden-and-table-width-100-not-顯示-正確)。 –

+0

如果我把它放在jsfiddle它顯示每個瀏覽器600。 http://jsfiddle.net/VCdGt/5/ – uday

+0

@uDaY你說得對。在我的腳本/ CSS中的其他東西必須以某種方式搞亂它,但似乎沒有應用任何其他樣式,並且我的JS沒有觸及它。 –

回答

4

需要查看呈現的組件以查看樣式來自哪裏,但您應該閱讀大約outerWidth

http://api.jquery.com/outerWidth/

編輯:看到你更新後的截圖,你應該做的元素塊級或inline-block的水平。設置內聯元素的寬度將不會提供所需的結果,因爲它根據元素的位置而變化。

更多關於內聯與塊元素在這裏: http://www.w3.org/TR/html401/struct/global.html#h-7.5.3

PS。我知道一個div是一個塊元素,是在你的代碼強制它成爲內聯的東西?

1

也許得到CSS寬度?

alert($("#TEST").css("width")); 
+0

這是返回600px,如你所期望的... –

+0

據我所知這是與調用'width()'相同,但是使用單位 – Jashwant