如何获取元素的背景色代码?
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
$(this).animate({ backgroundColor: '#f5b405' }, 'fast');
Answers:
检查下面的示例链接,然后单击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/中查看工作示例
$(this).css('backgroundColor')
回来rgba(n, n, n, n)
。
有一点这种黑客攻击的,因为HTML5画布需要时,某些属性喜欢解析颜色值strokeStyle
和fillStyle
有载:
var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
您只需要将颜色转换为所需的颜色即可。
这是应该可以解决问题的脚本:http : //www.phpied.com/rgb-color-parser-in-javascript/
添加@Newred解决方案。如果您的样式不只是,则background-color
可以使用以下代码:
$(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:和颜色之间的空间。
所有这些都将与上面的代码匹配。
background-color: #ffffff
background-color: #fffff;
background-color:#fffff;