我正在尝试获取每个子元素的背景颜色。
var arr = [];
for(var c = 0; c < 5; c++){
var temp = div.children[c].style.backgroundColor;
arr[c] = temp;
}
我似乎无法理解为什么它不起作用,因为当我使用下面的代码时,它起作用了
div.children[c].style.backgroundColor = "#eee";
答案 0 :(得分:3)
Window.getComputedStyle()
方法在应用活动样式表并解析这些值可能包含的任何基本计算后,会提供元素的所有CSS
属性的值。
HTMLElement.style
属性返回一个CSSStyleDeclaration对象,该对象仅代表element's inline style attribute
,忽略任何已应用的样式规则。
HTMLElement.style
仅适用于inline-css
,使用getComputedStyle(Element)
获取与style
相关联的所有Element
个对象。
注意:我会使用Array#push
而不是在指定的index
分配值。
var arr = [];
for (var c = 0; c < 5; c++) {
var temp = getComputedStyle(div.children[c]).backgroundColor;
arr.push(temp);
}
答案 1 :(得分:1)
避免自定义创建数组的替代方法。
var div = document.getElementById("text");
var arr = Array.prototype.map.call(div.children, function(el) {
return window.getComputedStyle(el).backgroundColor;
})
console.log(arr)
<div ID="text">
<span style="background-color:rgb(200,20,20)">1</span>
<span style="background-color:rgb(250,150,150)">2</span>
<span style="background-color:rgb(150,100,0)">2</span>
</div>