2016-11-30 63 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