SyntaxError:缺少;语句之前 | ReferenceError:[function] 未定义
2016-06-12
241
我之前运行正常的代码现在出现错误。我不确定我是否对其进行了任何更改。
错误:
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个回答
您的字符串被内部双引号撕裂了。请在外部使用单引号,或使用反斜杠转义内部引号。
例如
“这是一个 \”有效\” 字符串”
或
'这是一个“有效”字符串'
也是如此。
只是个陷阱 - 使用三等号来实现精确相等。除非您 知道 使用双等号相等匹配的确切原因,否则不要这样做。这是我的 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>';
}
}
2016-06-12
我在这里发现几个问题。您需要转义内部双引号,或者最好使用单引号来表示外部字符串。
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>';
}
}
irimawi
2016-06-12