我看过其他关于 if 以背景颜色作为条件的语句的主题;但是,尚未找到可行的答案。无论我预先创建一个元素作为变量,还是使用 rgb 或 rgba,我都没有得到任何结果,并且 if 直接传递给 else。
var element = $("#ARCStatusBox3EQETD");
console.log($('#ARCStatusBox1EQETD').css('backgroundColor'));
if(element.css('background-color') == "rgb(220,20,60)") {
$('#HomeStatus1').css("background-color", "#dc143c");
}
else if ($('#ARCStatusBox2EQETD').css('background-color') == '#daa520' || $('#ARCStatusBox2EQETD').css('background-color') == '#daa520' || $('#ARCStatusBox1EQETD').css('background-color') == '#daa520'){
$('#HomeStatus1').css("background-color", "#daa520");
}
else {// ($('#ARCStatusBox3EQETD').css('background-color') == '#7cfc00' || $('#ARCStatusBox2EQETD').css('background-color') == '#7cfc00' || $('#ARCStatusBox1EQETD').css('background-color') == '#7cfc00'){
$('#HomeStatus1').css("background-color", "#7cfc00");
}
这是我的代码,它既不能作为 == 十六进制代码也不能作为 rgb/rgba。
非常感谢任何有关解决方案的帮助。
最佳答案
尝试
var element = $("#ARCStatusBox3EQETD");
if(element.css('background-color') == "rgb(220, 20, 60)") {
$('#HomeStatus1').css("background-color", "#dc143c");
}
else if (hexColor($('#ARCStatusBox2EQETD').css('background-color')) == '#daa520' || hexColor($('#ARCStatusBox2EQETD').css('background-color')) == '#daa520' || $('#ARCStatusBox1EQETD').css('background-color') == '#daa520'){
$('#HomeStatus1').css("background-color", "#daa520");
}
else {// ($('#ARCStatusBox3EQETD').css('background-color') == '#7cfc00' || hexColor($('#ARCStatusBox2EQETD').css('background-color')) == '#7cfc00' || hexColor($('#ARCStatusBox1EQETD').css('background-color')) == '#7cfc00'){
$('#HomeStatus1').css("background-color", "#7cfc00");
}
function hexColor(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];
}
return '#' + parts.join('');
}
另请注意,某些浏览器会在 , 之后返回带空格的 rgb
关于javascript - 以背景色为条件的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368179/