2013-07-15 110 views
0

我有一個的jsfiddle在這裏 - http://jsfiddle.net/stevea/R3z2j/2/ - 在那裏我已經在樣式表中應用了紅色背景的身體,但是當我看到身體的風格節點在DOM與爲什麼DOM風格節點不顯示由樣式表應用的樣式?

style = document.body.style; 
bgclr = document.body.style.backgroundColor; 

那裏什麼都沒有了背景顏色。

感謝

+4

['getComputedStyle'(https://developer.mozilla.org/en-US/docs/Web/API/window.getComputedStyle)或['currentStyle'](HTTP ://msdn.microsoft.com/en-us/library/ie/ms535231.aspx )(IE8及以上)。 ['element.style'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.style)「*表示元素的'style'屬性*,」或元素的內聯樣式,不是那些它繼承的。 –

+0

與DOM屬性具有相同名稱的DOM屬性大多數都反映相同的值。因此,DOM樣式對象表示通過樣式屬性應用的值或通過分配樣式對象的屬性來設置值。 – RobG

+0

那麼JavaScript如何確定當樣式表設置顏色時元素的顏色? – Steve

回答

6

要闡述我的意見......

element.style代表元素的樣式屬性」或元素的自己的風格從style屬性或直接操作。

爲了獲得元素實際使用(包括繼承)的樣式,你可以在most browsers使用getComputedStyle()(任選getPropertyValue())在過時的歌曲或element.currentStyle

window.getComputedStyle(document.body).backgroundColor 
window.getComputedStyle(document.body).getPropertyValue('background-color') 

document.body.currentStyle.backgroundColor 

或者,因爲你使用jQuery,你也可以使用.css(propertyName)

$(document.body).css('background-color'); 
+0

樣式對象還表示直接在樣式屬性上設置的值,而不僅僅是通過屬性設置的值(例如* element.style.color *)。 – RobG

+0

@RobG思想「*或元素自己的內聯樣式*」將覆蓋這一點。沒那麼多?儘管在許多當前的瀏覽器中,對'element.style'的更改反映在屬性中。 –

+0

術語「內聯樣式」是指標記中的術語,因此它不涵蓋由* setAttribute *或樣式對象屬性設置的值。 – RobG

相關問題