当我运行这段代码时,它会在整个切换过程中运行到最终用例,即使之前的某个用例是匹配的。我知道这段代码很难看,但在我添加另一个案例之前它还能工作,现在它不能工作了。
function setColours() {
var operatorName = document.getElementById("operator-header").innerHTML;
console.log(operatorName);
switch(operatorName) {
case "Great Western Railway":
document.getElementById("section2").style.backgroundColor = "darkgreen";
document.getElementById("section2").style.color = "white";
case "c2c":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "purple";
case "Arriva Trains Wales":
document.getElementById("section2").style.backgroundColor = "rgb(0,190,206)";
document.getElementById("section2").style.color = "white";
case "Chiltern Railways":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(45,106,140)";
document.getElementById("horizontal-line").style.borderTop = "1px solid #53c2f0"
case "CrossCountry":
document.getElementById("section2").style.backgroundColor = "rgb(136,0,56)";
document.getElementById("section2").style.color = "white";
case "East Midlands Trains":
document.getElementById("section2").style.backgroundColor = "rgb(17,114,195)";
document.getElementById("section2").style.color = "rgb(246,198,42)";
document.getElementById("horizontal-line").style.border = "1px solid #cc1e05";
case "Great Western Railway":
document.getElementById("section2").style.backgroundColor = "darkgreen";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "Grand Central":
document.getElementById("section2").style.backgroundColor = "black";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #fe8238";
case "Greater Anglia":
document.getElementById("section2").style.backgroundColor = "rgb(204, 204, 204)";
document.getElementById("section2").style.color = "rgb(204,33,29)";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "Heathrow Express":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(109,56,122)";
document.getElementById("horizontal-line").style.border = "1px solid #d4d4d4";
case "West Midlands Trains":
document.getElementById("section2").style.backgroundColor = "rgb(90,30,79)";
document.getElementById("section2").style.color = "rgb(240,140,38)";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "London Overground":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(240,140,38)";
document.getElementById("horizontal-line").style.border = "1px solid #1172c3";
case "Merseyrail":
document.getElementById("section2").style.backgroundColor = "rgb(250,203,51)";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff"; 运行此命令时,控制台将输出正确的运算符,但仍缺省为结束大小写
发布于 2020-05-14 20:10:35
你需要为每个案例添加break,如果没有人选择,也应该有default案例。
在您的代码中,将应用最后一种情况。
function setColours() {
var operatorName = document.getElementById("operator-header").innerHTML;
console.log(operatorName);
switch(operatorName) {
case "Great Western Railway":
document.getElementById("section2").style.backgroundColor = "darkgreen";
document.getElementById("section2").style.color = "white";
break;
case "c2c":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "purple";
break;
case "Arriva Trains Wales":
document.getElementById("section2").style.backgroundColor = "rgb(0,190,206)";
document.getElementById("section2").style.color = "white";
break;
case "Chiltern Railways":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(45,106,140)";
document.getElementById("horizontal-line").style.borderTop = "1px solid #53c2f0"
break;
case "CrossCountry":
document.getElementById("section2").style.backgroundColor = "rgb(136,0,56)";
document.getElementById("section2").style.color = "white";
break;
case "East Midlands Trains":
document.getElementById("section2").style.backgroundColor = "rgb(17,114,195)";
document.getElementById("section2").style.color = "rgb(246,198,42)";
document.getElementById("horizontal-line").style.border = "1px solid #cc1e05";
case "Great Western Railway":
document.getElementById("section2").style.backgroundColor = "darkgreen";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "Grand Central":
document.getElementById("section2").style.backgroundColor = "black";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #fe8238";
case "Greater Anglia":
document.getElementById("section2").style.backgroundColor = "rgb(204, 204, 204)";
document.getElementById("section2").style.color = "rgb(204,33,29)";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "Heathrow Express":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(109,56,122)";
document.getElementById("horizontal-line").style.border = "1px solid #d4d4d4";
case "West Midlands Trains":
document.getElementById("section2").style.backgroundColor = "rgb(90,30,79)";
document.getElementById("section2").style.color = "rgb(240,140,38)";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
case "London Overground":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "rgb(240,140,38)";
document.getElementById("horizontal-line").style.border = "1px solid #1172c3";
case "Merseyrail":
document.getElementById("section2").style.backgroundColor = "rgb(250,203,51)";
document.getElementById("section2").style.color = "white";
document.getElementById("horizontal-line").style.border = "1px solid #ffffff";
break;
default:
//if no case select
发布于 2020-05-14 17:53:16
在该案例的末尾添加“break;”。
例如:
switch(operatorName) {
case "Great Western Railway": doA(); break;
case "c2c": doB(); break;
case "Arriva Trains Wales": doC(); break;
}发布于 2020-05-14 19:35:04
尝试在每个新的事例行之前添加一个分隔符,例如
switch(operatorName) {
case "Great Western Railway":
document.getElementById("section2").style.backgroundColor = "darkgreen";
document.getElementById("section2").style.color = "white";
break;
case "c2c":
document.getElementById("section2").style.backgroundColor = "white";
document.getElementById("section2").style.color = "purple";
break;中断用于结束case块并开始一个新的块,它将它们( case块)分开,以便计算机可以单独识别每个块。
https://stackoverflow.com/questions/61794155
复制相似问题