为什么我的Javascript开关语句不能在十六进制颜色分配上工作

为什么我的Javascript开关语句不能在十六进制颜色分配上工作,javascript,Javascript,JSFIDLE在这里: 下面的提升功能按预期工作(循环颜色)。 Lower函数没有,唯一的区别是从文本到十六进制的颜色分配 HTML元素 <button type="button" id="subEmail" onclick="Raise();">Raise</button> <button type="button" id="subEmail2" onclick="Lower();">Lower</button> Raise 降低 JS片

JSFIDLE在这里:

下面的提升功能按预期工作(循环颜色)。 Lower函数没有,唯一的区别是从文本到十六进制的颜色分配

HTML元素

<button type="button" id="subEmail" onclick="Raise();">Raise</button>
<button type="button" id="subEmail2" onclick="Lower();">Lower</button>
Raise
降低
JS片

<script>
  function Raise() {
    var inputVal = document.getElementById("subEmail");
    var currentcolor = inputVal.style.backgroundColor;
    var color1 = "red";
    var color2 = "yellow";
    var color3 = "blue";
    switch (currentcolor) {
        case color1:
            inputVal.style.backgroundColor = color2;
        break;
        case color2:
            inputVal.style.backgroundColor = color3;
        break;
        default:
            inputVal.style.backgroundColor = color1;
            break;

    }

} // function Lower()
  function Lower() {
    var inputVal = document.getElementById("subEmail2");
    var currentcolor = inputVal.style.backgroundColor;
    var color3 = "#FF0000";
    var color2 = "#FFFF00";
    var color1 = "#0000FF";
    switch (currentcolor) {
        case color1:
            inputVal.style.backgroundColor = color2;
        break;
        case color2:
            inputVal.style.backgroundColor = color3;
        break;
        default:
            inputVal.style.backgroundColor = color1;
            break;

    }

} // function Lower()

</script>

函数Raise(){
var inputVal=document.getElementById(“子电子邮件”);
var currentcolor=inputVal.style.backgroundColor;
var color1=“红色”;
var color2=“黄色”;
var color3=“蓝色”;
开关(当前颜色){
外壳颜色1:
inputVal.style.backgroundColor=color2;
打破
外壳颜色2:
inputVal.style.backgroundColor=color3;
打破
违约:
inputVal.style.backgroundColor=color1;
打破
}
}//函数Lower()
函数下限(){
var inputVal=document.getElementById(“subEmail2”);
var currentcolor=inputVal.style.backgroundColor;
var color3=“#FF0000”;
var color2=“#FFFF00”;
var color1=“#0000FF”;
开关(当前颜色){
外壳颜色1:
inputVal.style.backgroundColor=color2;
打破
外壳颜色2:
inputVal.style.backgroundColor=color3;
打破
违约:
inputVal.style.backgroundColor=color1;
打破
}
}//函数Lower()

此行没有正确获取十六进制值,因此
开关
语句将始终计算
默认值

var currentcolor = inputVal.style.backgroundColor;
尝试记录或调试该变量的值

关于如何使用javascript实现这一点,您有一个很好的答案


我认为代码的其余部分看起来不错。

这一行没有正确获取十六进制值,因此
switch
语句将始终计算
默认值

var currentcolor = inputVal.style.backgroundColor;
尝试记录或调试该变量的值

关于如何使用javascript实现这一点,您有一个很好的答案


我认为其余的代码看起来不错。

console.log(inputVal.style.backgroundColor)值是多少。。。现在你知道它为什么不工作了吗?@tarabyte,因为如果我没有弄错的话,它会记录为RGB值。
console.log(inputVal.style.backgroundColor)值是多少。。。现在你知道它为什么不工作了吗?@tarabyte,因为如果我没弄错的话,它记录为RGB值。