2016-11-30 62 views
-2

我想動態改變HTML標記在JavaScript中。動態改變HTML標記的風格在JavaScript

我一直在使用

document.getElementById("html").setAttribute("style", "background: #000000") 

試過,但收到以下錯誤: 遺漏的類型錯誤:不能爲空的讀取屬性「的setAttribute」

我怎麼會去這樣做呢?

CSS

html { 
    background: #FFFFFF; 
} 
+1

什麼是錯誤你有? – brk

+1

是你的元素「html」的id還是你想要訪問html標籤? – GraveyardQueen

+0

@ user2181397未捕獲TypeError:無法讀取屬性'setAttribute'null – janeeyrea

回答

1

這樣做:

document.getElementsByTagName("html")[0].style.backgroundColor = "#000000";` 

雖然有可能用一個值與的setAttribute方法的元素添加樣式屬性,建議您使用屬性樣式對象,而不是爲內嵌樣式,因爲這不會覆蓋可以在style屬性來指定其它CSS屬性的

1

你可以做到這一點

document.getElementsByTagName("html")[0].style.background = "#000000"; 
0

您已經使用的document.getElementById找到HTML標記。

你必須使用

document.getElementsByTagName 

定位元素標記名稱

相關信息: W3Schools

+0

他沒有提到使用jQuery。 – Yatrix

+0

我只是在這個過程中表達了jQuery的簡單性。 –

+0

我編輯它,因爲它與問題無關。 – Yatrix

0

你是指的HTML標記,而不是在HTML體元素, getElementByID需要一個字符串,它是一個元素ID。 例如

<p id="myID">text</p> 

那麼你cound做

document.getElementByID('myID').setAttribute('style', 'background: red'); 

可能首先把元素到一個變量,但我希望這有助於。

0

你可能會試圖將樣式元素html;但我敢打賭,這不是標記像這樣:

<html id="html">

...所以你的選擇將無法正常工作。

你可能需要使用這個,而不是(從How do I change the background color with JavaScript?):

document.body.style.background = '#000000'

(注:目標body元素。)

+0

完美!謝謝 – janeeyrea

+1

@jnara一定要更新他的答案並接受它。很高興你明白了。 – Yatrix