Javascript 如何获取十六进制元素的背景色代码?

Javascript 如何获取十六进制元素的背景色代码?,javascript,jquery,css,hex,background-color,Javascript,Jquery,Css,Hex,Background Color,如何获取元素的背景色代码 console.log($(“.div”).css(“背景色”) 您只需将颜色转换为所需格式即可 这里有一个脚本应该可以做到这一点:这方面有点麻烦,因为当设置了某些属性(如strokeStyle和fillStyle时,HTML5画布需要解析颜色值: var ctx = document.createElement('canvas').getContext('2d'); ctx.strokeStyle = 'rgb(64, 128, 192)'; var hexColo

如何获取元素的背景色代码

console.log($(“.div”).css(“背景色”)

您只需将颜色转换为所需格式即可


这里有一个脚本应该可以做到这一点:

这方面有点麻烦,因为当设置了某些属性(如
strokeStyle
fillStyle
时,HTML5画布需要解析颜色值:

var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;

选中下面的示例链接并单击div以获取十六进制的颜色值

var color='';
$('div')。单击(函数(){
var x=$(this.css('backgroundColor');
hexc(x);
控制台。日志(颜色);
})
函数hexc(colorval){
var parts=colorval.match(/^rgb\(\d+)\s*(\d+)\s*(\d+)$/);
删除(第[0]部分);
对于(var i=1;i

在Chrome和Firefox下正常工作

事实上,如果在某些元素下没有定义
背景色
,Chrome会将其
背景色
输出为
rgba(0,0,0,0)
,而Firefox输出是透明的
我美丽的非标准解决方案

HTML

<div style="background-color:#f5b405"></div>
结果

#f5b405

添加@Newred解决方案。 如果您的风格不仅仅是背景色
,您可以使用:

$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1]

这个解决方案利用了@Newred和@Radu Diță所说的部分内容,但在不太标准的情况下会起作用

 $(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1].replace(/\s/g, '');
这两种方法都存在的问题是,它们都不检查背景色:和颜色之间的间距

所有这些都将与上述代码匹配

 background-color: #ffffff
 background-color:      #fffff;
 background-color:#fffff;

你想用这个值做什么?我想动画背景色-
$(这个)。动画({backgroundColor:''f5b405','fast');
但是我刚刚发现我也可以用rgb代码来动画背景色!lol有时
$(这个)。css('backgroundColor')
返回
rgba(n,n,n)
。对您的函数进行了一些调整,以自动化设计现代化等…示例使用场景-不完美,但可能对某些人有所帮助,因此我将其链接到此处以供参考此代码示例的摘要。可能只想将hexc函数重写为返回字符串的真实函数,而不是设置全局变量我相信这是新html5浏览器的最佳方法:)我喜欢这种方式
 $(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1].replace(/\s/g, '');
 background-color: #ffffff
 background-color:      #fffff;
 background-color:#fffff;