为什么我会得到一个意外的令牌
Why do I get a Unexpected Token?
我正在用一种javascript应用程序制作一个网站。我为此工作了很长时间,但最终一切都奏效了。因此,当我清理所有注释代码时,我刷新了我的网站并再次测试了此应用程序,但它不再起作用了。我得到的错误说:
未捕获的语法错误:意外的令牌 }
在第 13 行是发生错误的地方。
<table class="calculator" id="calculator">
<tr>
<th>Materiaal</th>
<th>Waarde(€/kg)</th>
<th>Hoeveelheid(kg)</th>
<th>Subtotaal</th>
</tr>
<tr>
<td>IJzer</td>
<td>0,15</td>
<td>
<input type="number" min="0" id="ironinput" onchange=calculator( "iron") onkeyup=calculator( "iron") value=0>
</td> <!--This is where the error occurs-->
<td id="ironoutput">0.00</td>
</tr>
这是我的javascript:
var materials = ["iron", "copper", "aluminum"];
var iron = 0.15;
var copper = 4.00;
var aluminum = 0.70;
function calculator(material) {
var input = document.getElementById(material + "input").value;
switch (material) {
case "iron":
document.getElementById(material + "output").innerHTML = (input * iron).toFixed(2);
break;
case "copper":
document.getElementById(material + "output").innerHTML = (input * copper).toFixed(2);
break;
case "aluminum":
document.getElementById(material + "output").innerHTML = (input * aluminum).toFixed(2);
break;
}
document.getElementById("total").innerHTML = getTotal().toFixed(2);
};
function getTotal() {
var total = 0;
for (var i = 0; i < materials.length; i++ ) {
total += Number(document.getElementById(materials[i] + "output").innerHTML);
}
return total;
};
我希望有人可以帮助我,我是Web开发的初学者,所以我希望我能得到一个相对简单的解决方案和解释为什么会发生这种情况。谢谢你们。
将事件属性括起来:
<input type="number" min="0" id="ironinput" onchange="calculator('iron');" onkeyup="calculator('iron');" value="0" />
函数不必以分号结尾:
function foo() {
console.log('foo');
}
函数表达式可以(避免副作用):
var foo = function() {
console.log('foo');
};
您也不需要 keyup
和 change
事件。
工作示例:https://jsfiddle.net/wtwx8vbj/
您可能应该将 onchange 和 onkeyup 属性括在引号中:
<input type="number" min="0" id="ironinput" onchange="calculator('iron')" onkeyup="calculator('iron')" value="0" />
这个
<input onchange=calculator( "iron") >
是错误的,错误的 HTML 属性定义。如果属性值不是 NMTOKEN,则必须将其括在括号中,因此:
<input onchange='calculator( "iron")' >
检查 https://html.spec.whatwg.org/multipage/syntax.html#syntax-attributes
相关文章:
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- 做了一个javascript小实验,需要你的帮助才能理解意外的结果
- 一个javascript函数导致“;意外标识符”;来自不同函数的错误
- uglifyjs是一个javascript意外的令牌错误
- 为什么JSON.parse()在尝试解析一个简单的JSON对象时抛出Uncaught SyntaxError:意外的令牌
- 使用javascript中的另一个dict创建dict时出现意外的令牌
- 试图解析一个大型JSON对象并提取数据,但不断出现意外的令牌错误
- 为什么我会得到一个意外的令牌
- 闭包的意外行为:回调保存最后一个值
- 我有一个有效的 JSON,但我不断收到“语法错误 json.parse 第 1 行意外的数据结尾”
- 尝试将一个元素加载到另一个元素时出现意外字符串
- 我得到了一个“;意外的令牌“;尝试对简单对象执行JSON.parse时出错
- 未捕获的语法错误:意外的标记ILLEGAL-一个简单的字符串语法错误
- 在React.js中创建文件上传时获得了一个奇怪的意外令牌
- children().length返回了一个意外值
- Lexer错误:意外的下一个字符(属性名称中的波浪号~)
- 我的代码有一个意外的语法错误
- PHP脚本向AJAX调用返回一个意外值
- 为什么它是一个“意外符号”?这里的错误