2016-01-30 60 views
2

我有一個元素,我已經(直接)應用了幾個CSS屬性。元素由DOM處理後,我試着檢查它的style屬性對象,並看到所有的值(包括顏色)都是空字符串。對此感到相當驚訝。DOM「風格」屬性和實際CSS樣式之間的關係

DOM元素的style屬性的用途是什麼?是否存儲定義dynamically的樣式?我見過的人做的事情,在jQuery的一樣:

$('#el').removeAttr('style'); 

,我想在瀏覽器解釋爲removeProp('style')這抵消應用於元素的所有樣式和CSS文件刪除最初的樣式。

+0

刪除屬性不會刪除DOM節點上的屬性 –

+0

*「我認爲瀏覽器解釋爲」* - 您的瀏覽器不解釋您的意圖,它的行爲將根據規範進行。另外,jQuery是一個外部庫,不屬於瀏覽器。 – the8472

+0

下面是我沒有得到的東西... style屬性包含style屬性中的值。像jQuery這樣的庫,當你做$('el'。).css('property','value')時,會在後臺修改這個樣式屬性,所以就像你手動添加了style =「property:value」你的元素? – daremkd

回答

4

如果不符合您的期望,您應該查閱有關屬性的文檔。

MDN Element.style文章描述了它的實際功能。它還提到如何實現你想要做的事情。

至於搬遷,嘗試瀏覽器控制檯以下,一步一步:

let el = document.querySelector("body") 
el.style.color = "#fff" 
el.getAttribute("style") 
el.removeAttribute("style") 

jQuery的包瀏覽器的API,所以你需要先想明白,JQ添加行爲之前瞭解這些API在他們之上。

+0

好吧,這是(有點)黑客...糾正我,如果我錯了。因此,jQuery .css添加CSS屬性的方式與直接在HTML中添加內聯屬性到「樣式」屬性的方式相同(如果您手動執行,通常會在CSS社區中皺眉)。所以,現在,removeAttr('style')與jQuery無關,它只是說...嘿,刪除此屬性(jQuery以前用來添加屬性)。 – daremkd

+0

謝謝,真的很好的答案。 – daremkd

相關問題