javascript - 以背景色为条件的 If 语句

标签 javascript jquery html css

我看过其他关于 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/

相关文章:

javascript - 如何使两个图像等高并保持调整大小

php - 为什么我的“是/否”单选按钮未定义

javascript - 如何在reactjs中选择基于组的复选框antd

javascript - 向用户安全隐藏 jQuery 结果?

javascript - Bootstrap 工具提示不起作用

javascript - 使用 jQuery 在页面加载时淡入图片

javascript - jQuery 鼠标悬停事件正在复制

css - 奇怪的问题/错误,html5 导航元素影响另一个元素的绝对定位

html - 如何创建支持跨浏览器的半实心、半透明渐变背景图像?

javascript - 将元素的类替换为另一个类