如何获取元素的背景颜色代码?
console.log($(".div").css("background-color"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div" style="background-color: #f5b405"></div>
我想要的是
#f5b405
如何获取元素的背景颜色代码?
console.log($(".div").css("background-color"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div" style="background-color: #f5b405"></div>
我想要的是
#f5b405
检查下面的示例链接,然后单击 div 以获取十六进制的颜色值。
var color = '';
$('div').click(function() {
var x = $(this).css('backgroundColor');
hexc(x);
console.log(color);
})
function hexc(colorval) {
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
delete(parts[0]);
for (var i = 1; i <= 3; ++i) {
parts[i] = parseInt(parts[i]).toString(16);
if (parts[i].length == 1) parts[i] = '0' + parts[i];
}
color = '#' + parts.join('');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='div' style='background-color: #f5b405'>Click me!</div>
在http://jsfiddle.net/DCaQb/检查工作示例
对此有一点小技巧,因为在设置了某些属性(如strokeStyle
和 )时需要 HTML5 画布来解析颜色值fillStyle
:
var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
function getBackgroundColor($dom) {
var bgColor = "";
while ($dom[0].tagName.toLowerCase() != "html") {
bgColor = $dom.css("background-color");
if (bgColor != "rgba(0, 0, 0, 0)" && bgColor != "transparent") {
break;
}
$dom = $dom.parent();
}
return bgColor;
}
在 Chrome 和 Firefox 下正常工作
您拥有将其转换为所需格式所需的颜色。
这是一个应该可以解决问题的脚本:http : //www.phpied.com/rgb-color-parser-in-javascript/
实际上,如果background-color
某个元素下没有定义,Chrome 会输出它的background-color
as rgba(0, 0, 0, 0)
,而 Firefox 输出的是transparent
.