如何使用JavaScript获取任何元素(如<div>
)的背景颜色?我试过:
<html>
<body>
<div id="myDivID" style="background-color: red">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<input type="button" value="click me" onclick="getColor();">
</body>
<script type="text/javascript">
function getColor() {
myDivObj = document.getElementById("myDivID")
if (myDivObj) {
console.log('myDivObj.bgColor: ' + myDivObj.bgColor); // shows: undefined
console.log('myDivObj.backgroundcolor: ' + myDivObj.backgroundcolor); // shows: undefined
//alert ( 'myDivObj.background-color: ' + myDivObj.background-color ); // this is not a valid property :)
console.log('style:bgColor: ' + getStyle(myDivObj, 'bgColor')); //shows: undefined
console.log('style:backgroundcolor: ' + getStyle(myDivObj, 'backgroundcolor')); // shows:undefined:
console.log('style:background-color: ' + getStyle(myDivObj, 'background-color')); // shows: undefined
} else {
console.error('Error: When function "getColor();" was called, no element existed with an ID of "myDivId".');
}
}
/* copied from `QuirksMode` - http://www.quirksmode.org/dom/getstyles.html - */
function getStyle(x, styleProp) {
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp);
return y;
}
</script>
</html>
8条答案
按热度按时间t40tm48m1#
获取号码:
示例:
dxxyhpgq2#
与所有包含连字符的css属性一样,它们在JS中的对应名称是删除连字符并使以下字母大写:
backgroundColor
ffdz8vbo3#
简单的解决方案
现在,背景颜色存储在新变量中。
https://jsfiddle.net/7q1dpeo9/1/
t98cgbkg4#
使用jQuery:
带原型:
纯JS:
bfrts1fy5#
这取决于您需要的div中的哪种样式。这是在
CSS
中定义的背景样式,还是通过javascript(inline)
添加到当前节点的背景样式?如果是
CSS
样式,则应该使用计算样式。就像你在getStyle()
中做的那样。对于内联样式,您应该使用
node.style
引用:x.style.backgroundColor
;还要注意,您通过使用camelCase/non hyphen引用来选择样式,因此不是
background-color
,而是backgroundColor
;llmtgqce6#
这对我很有效:
更妙的是:
oxalkeyp7#
使用JQuery:
bqucvtff8#
如果控件有多种颜色,则可以在控件上绘制画布元素(即使不显示它),以获取控件中特定位置的颜色。
这是一把能用的小提琴。https://jsfiddle.net/cdgpts9n/