javascript - 构建 Javascript 计算器的问题
问题描述
我正在尝试创建一个带有除法、乘法、减法、加法、清除、等于和小数按钮的简单 javascript 计算器。
我似乎无法弄清楚如何为除法/乘法和小数添加单元格。
任何试图解决此问题的帮助将不胜感激。
function calculate(numEntered) {
if (numEntered == 'C') {
document.getElementById('answer').value = '';
} else if (numEntered == '=') {
document.getElementById('answer').value = eval(document.getElementById('answer').value);
} else {
document.getElementById('answeralue') += numEntered;
}
}
table,
td {
border: 1px solid #000000;
}
td {
cursor: pointer;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>
<table>
<tbody>
<tr>
<td colspan="3"><input type="text" id="answer" disabled=""></td>
<td onclick="calculate('C');">C</td>
</tr>
<tr>
<td onclick="calculate(1);">1</td>
<td>2</td>
<td>3</td>
<td onclick="calculate('+')">+</td>
</tr>
<tr>
<td onclick="calculate(4);">4</td>
<td>5</td>
<td>6</td>
<td onclick="calculate('-')" ;>-</td>
</tr>
<tr>
<td onclick="calculate(7);">7</td>
<td>8</td>
<td>9</td>
<td onclick="calculate('=')" ;>=</td>
</tr>
</tbody>
</table>
</body>
</html>
解决方案
您只需要添加一行与其余运算符*
- 乘法,/
- 除法和小数点 -.
<tr>
<td onclick="calculate('*');">*</td>
<td onclick="calculate('/');">/</td>
<td onclick="calculate('.');">.</td>
</tr>
编辑:这当然不会检查您是否已将操作员放置在适当的位置。
您的 js 代码中有错字:
document.getElementById('answeralue') += numEntered; // should be ...('answer').value +=...
另外,请注意 eval 可能会打开您的项目进行代码注入,而且速度非常慢。
推荐阅读
- c# - 如果按钮位于父面板中,则模板中单选按钮的双向绑定会出错
- html - 锚标签上的下载属性不适用于边缘中的相对路径
- dart - 我应该使用构造函数或方法来实现 Json 到 List
- arrays - 在 Swift 中拆分行而不省略空行
- matlab - 如何在 MATLAB 中替换标志之间的字符
- javascript - 在 Safari 中拖动时数据工具提示不起作用
- mysql - SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not extract ResultSet
- python - 展平 Python Dict 并且仅在不唯一时更改键
- azure-cosmosdb - Gremlin CosmosDB 尝试从节点列表中查询节点列表并将两者都返回
- vue.js - 无法使用 vue 和 express 使用 axios POST