2012-01-16 451 views
2

使用Javascript我已經能夠在我的html文檔中選擇一個圖像元素(一個對象,例如img1)。我也可以使用img1.style來獲得它的風格。但是,以下將返回一個空警報:Javascript:獲取img元素的寬度

alert(img1.style.width);

,而這在同一位置使用正常工作:

alert(img1.width);

,所以我不認爲它與圖像的問題不已經加載了。

我可以設置寬度使用兩個選項中的任何一個,但是,我喜歡使用第一個,當然。但爲什麼我不能得到使用第一個寬度?

這不是我想要完成的任務,這是這裏的問題(我可以用第二種方式做到這一點);我想知道第一種方式有什麼問題。

+1

取決於項目的大小,使用jQuery的'width()'函數可能是有用的,所以你不必擔心所有這些! – Connell 2012-01-16 10:16:00

+0

你可能是對的。但這並不是一個巨大的項目,我想堅持純JavaScript,並在考慮jQuery之前,通過努力編寫更多實踐。 – 2012-01-16 10:21:06

+0

好電話!是的,我同意,有時候jQuery對於一個小項目可能有點太過分了。但是如果在一個更大的項目中有類似的問題,jQuery會解決這個問題(可能還有其他很多問題) – Connell 2012-01-16 10:42:45

回答

6

img1.style.width返回css屬性值width的值。如果您沒有將寬度應用於該圖像的css規則,則該屬性爲空字符串。

+0

這可能是。然而,這個想法已經超出了我的想法。我有一個關於CSS高度的規範,我想我也有一個空白的警告。我會再次檢查並回來。 – 2012-01-16 10:13:48

+2

@Abhranil:更具體地說,'.style.width'表示元素的* inline *樣式屬性。如果你在一個單獨的樣式表中設置'width',那麼'img1.style.width'仍然會丟失。 – 2012-01-16 10:20:00

+0

好的,這非常有啓發性!也很不方便:-(在這種情況下,如何獲取風格? – 2012-01-16 10:26:29

1

這是兩種不同的方式設置的<img>寬度的引用:

  • 您可以設置在HTML屬性,通過<img width="100px">例如。
  • 您可以通過CSS將其設置爲<img>所屬的樣式或類。

第一個通過img.width訪問。 第二個通過img.style.width

+0

這實際上是西蒙在[他的回答]中說的(http://stackoverflow.com/a/8878481/447356) – 2012-01-16 10:19:56

+0

確實,我應該花更少的時間來格式化TT' – 2012-01-16 10:21:18

+0

是的,但我的問題在於爲什麼這些方式失敗了。 – 2012-01-16 10:23:37