在javascript中动态更改html标签的样式

时间:2016-11-30 04:27:47

标签: javascript html css

我想在JavaScript中动态更改html标记。

我尝试过使用

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

但收到以下错误: 未捕获的TypeError:无法读取null

的属性'setAttribute'

我该怎么做?

CSS

html {
   background: #FFFFFF;
}

6 个答案:

答案 0 :(得分:1)

这样做:

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

尽管可以使用setAttribute方法将带有值的style属性添加到元素,但建议您使用Style对象的属性代替内联样式,因为这不会覆盖可能指定的其他CSS属性在样式属性

答案 1 :(得分:1)

你可以这样做

uniq

答案 2 :(得分:0)

您已使用document.getElementById查找Html标记。

你必须使用

document.getElementsByTagName

按标签名称

定位元素

供参考: W3Schools

答案 3 :(得分:0)

你指的是html标签,而不是html主体中的一个元素, getElementByID需要一个元素id的字符串。 例如

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

然后你要做

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

可能首先将元素放入变量中,但我希望这会有所帮助。

答案 4 :(得分:0)

您可能尝试设置html元素的样式;但我愿意打赌它的标记如下:

<html id="html">

...所以你的选择器不会工作。

您可能需要使用此功能(来自How do I change the background color with JavaScript?):

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

(注意:定位body元素。)

答案 5 :(得分:0)

完全按照您的要求(根据问题中的CSS)进行操作:

document.documentElement.style.setProperty("background","#000000");