javascript - 语法错误: missing ; before statement | ReferenceError:[function] is not defined

标签 javascript syntax-error referenceerror

我在之前运行良好的代码中遇到了错误。我不确定我是否对其进行了任何更改。

错误:

SyntaxError: missing ; before statement

代码片段:

function ChangeOptions() {
var x = document.getElementById("Select1").value;
var y = document.getElementById("Select2");
var z = document.getElementById("Select3");

 if(x == "Sch"){y.innerHTML = "<option value="Sch1">Sch1</option><option  value="Sch1">Sch2</option>"; 
                z.innerHTML = "<option value="1">1</option><option value="1" value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>";}
if(x == "COMM"){y.innerHTML = "<option value="COMM1">COMM1</option><option value="COMM2">COMM2</option>"; 
                z.innerHTML = "<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>";}
if(x == "Inst"){y.innerHTML = "<option value="Inst1">Inst1</option><option value="Inst2">Inst2</option>"; 
                z.innerHTML = "<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>";} 
}

当我最初加载我的网站时,我在控制台中收到此错误。如果我单击 html 中的选择按钮,该按钮在 onchange 事件上调用此函数,则会收到错误

ReferenceError: ChangeOptions is not defined

但是,当我删除条件运算符(ifs)时,我不会收到ReferenceError:ChangeOptions未定义

有人可以指导我完成这个吗?

最佳答案

你的字符串被内部双引号撕裂了。在外部使用单引号或使用反斜杠转义内部引号。

例如“这是一个“有效”字符串”“这也是一个“有效”字符串”

只是一个陷阱 - 使用三等号来精确相等。除非您知道使用双等于相等匹配的确切原因,否则不要这样做。这是我的 2 美分。

function ChangeOptions() {
  var x = document.getElementById("Select1").value;
  var y = document.getElementById("Select2");
  var z = document.getElementById("Select3");

  if (x === "Sch") {
    y.innerHTML = '<option value="Sch1">Sch1</option><option  value="Sch1">Sch2</option>';
    z.innerHTML = '<option value="1">1</option><option value="1" value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>';
  }
  if (x === "COMM") {
    y.innerHTML = '<option value="COMM1">COMM1</option><option value="COMM2">COMM2</option>';
    z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>';
  }
  if (x === "Inst") {
    y.innerHTML = '<option value="Inst1">Inst1</option><option value="Inst2">Inst2</option>';
    z.innerHTML = '<option value="1-4">1-4</option><option value="5-7">5-7</option><option value="8-10">8-10</option>';
  }
}

关于javascript - 语法错误: missing ; before statement | ReferenceError:[function] is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37770649/

相关文章:

javascript - 请求一个基于 jquery 的轻量级图表库

javascript - 提供 tar.gz 文件并在 nodejs 上下载它

JavaScript - 意外的 token 错误

testing - 带有 webpack 的 Angular 2 获取未捕获的 ReferenceError : System is not defined

javascript - ReferenceError:未定义 GM_xmlhttpRequest

javascript - ReferenceError:找不到变量:_e_0uWl - 浏览器 "breaks"

Javascript:将 <select> 替换为 <div>?

javascript - 这个javascript代码片段是什么意思?

python - cs50 pset7包含语法

mysql - 插入值列表与列列表不匹配