Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在id/class css中定义样式时获取/设置元素的样式?_Javascript_Html_Css - Fatal编程技术网

Javascript 在id/class css中定义样式时获取/设置元素的样式?

Javascript 在id/class css中定义样式时获取/设置元素的样式?,javascript,html,css,Javascript,Html,Css,我可能在这里遗漏了一些简单的内容,但我正在尝试获取/设置div的背景色,但前提是已经设置了背景色(无论是来自class/id还是样式属性等) 我尝试过使用.style.backgroundColor,但它返回的只是一个空字符串(我认为这是因为属性是在类/id中定义的,而不是元素样式本身)。来证明我的意思 我不能使用jQuery,也不能只选择class/id本身的属性,因为我使用的是大量(可能不相关的)元素 最终,目标是实现以下目标: var allElements = document.getE

我可能在这里遗漏了一些简单的内容,但我正在尝试获取/设置div的背景色,但前提是已经设置了背景色(无论是来自class/id还是样式属性等)

我尝试过使用
.style.backgroundColor
,但它返回的只是一个空字符串(我认为这是因为属性是在类/id中定义的,而不是元素样式本身)。来证明我的意思

我不能使用jQuery,也不能只选择class/id本身的属性,因为我使用的是大量(可能不相关的)元素

最终,目标是实现以下目标:

var allElements = document.getElementsByTagName("*");
for (var i = 0; i < allElements.length; i++) {
    if (allElements[i].style.backgroundColor != '') {
        allElements[i].style.backgroundColor = 'blue';
    }
}
var-allegements=document.getElementsByTagName(“*”);
对于(var i=0;i

谢谢

一种方法是使用
getComputedStyle()
函数:

JS:


老实说,这是一种倒退的方式。颜色不是状态,颜色只是应用于状态的样式。因此,应该使用指示状态的类(例如
.active、.error
等)设置颜色,然后检查该特定类是否应用于元素。仔细想想,您可能想知道的是元素是否具有特定的状态。具体的颜色并不重要;这只是那种状态的一种风格,你真的不应该把它和你的逻辑联系在一起。有道理,谢谢。但是,我真的没有设置任何类的选项:\n这是迷你javascript库的一部分,不能使用任何依赖项,应该能够在任何页面上运行。
getComputedStyle
仅适用于IE 9及以上版本。@AlexanderDixon Microsoft在2014年4月停止了对XP(因此,IE8)的支持,这已经超过一年了。除非您正在开发某种遗留应用程序,getComputedStylepolyfill。有很多实现,下面是其中之一:。
var byId = document.getElementById.bind(document);
byId("ending").innerText = "The color is " + getComputedStyle(byId("intro")).backgroundColor + ".";