提问者:小点点

处理不在嵌套if条件中显示时出错


我有一个函数有多个if-else条件(大约50),他们将检查用户的输入。 如果用户的输入匹配,那么它将再次检查是否有任何错误,然后最后显示result。

function abc(input){
  try{  //start try 
     if(input.includes("abc")){
       if(....){
        throw error "error";
        }
     }
    else if(input.includes("def"){
      if((.....){
       throw error "error";
     }
   }
   ................
  ............... .
  document.getElementById("div").style.background ="green";
 } //end try
catch(err){
    document.getElementById("div").style.background ="red";
} 

问题是当我控制台记录错误时,它会显示错误,但div元素保持绿色。 出现错误时,应显示红色背景。 知道吗?

谢谢


共1个答案

匿名用户

似乎有一些语法错误:

  1. 如果(input.includes(“def”)缺少结束)
  2. throw error“error”就是throw“error”(如果定义了error,则为throw error)

解决这些问题,似乎如下所示:

null

function abc(input) {
  try { //start try 
    if (input.includes("abc")) {
      throw "error";
    } else if (input.includes("def")) {
      throw "error";
    }
    document.getElementById("div").style.background = "green";
  } //end try
  catch (err) {
    console.log(err)
    document.getElementById("div").style.background = "red";
  }
}

abc("abc")
<div id="div">Change my BG</div>