javascript - 我怎样才能让这个 Javascript 计算器工作?
问题描述
我做了一个简单的计算器,但它不工作。我怎样才能让它工作?
$(function() {
var firstNumber = $('#firstNumber')
var operation = $('#operation')
var secondNumber = $('#secondNumber')
var calculate = $('button')
calculate.click(getResult)
function getResult(firstNumber, operation, secondNumber) {
if (operation === '+') {
var result = firstNumber.val() + secondNumber.val()
} else if (operation === '-') {
var result = firstNumber.val() - secondNumber.val()
} else if (operation === '*') {
var result = firstNumber.val() * secondNumber.val()
} else {
var result = firstNumber.val() / secondNumber.val()
}
}
$('#result').text(result)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='text' id='firstNumber' placeholder='Enter a number'>
<input type='text' id='operation' placeholder='Enter an operation'>
<input type='text' id='secondNumer' placeholder='Enter another number'>
<br>
<button>Calculate</button>
<br>
<p>The result is <span id='result'></span></p>
解决方案
- calculate.click(getResult) 没有通过函数的预期。从函数参数中删除 firstNumber, operation, secondNumber
- 重命名 span(不建议函数、vars 和 html 元素使用相同的名称)
- 确保字符串转换为数字
- 只有一个 var 结果
- $('#resultSpan').text(result) 在使用它的函数中
- secondNumer 中的错字
- 操作时缺少 .val()
- 不允许除以 0
- 除了 4 个允许的运算符之外的任何东西都应该给出错误(您也可以在计算之前测试数字)
- 我将按钮更改为 type="button" - 如果您曾经将元素包装在表单中,它将提交表单
这是工作版本
function getResult() {
var result,
firstNumber = +$('#firstNumber').val(), // casting value to number
secondNumber = +$('#secondNumber').val(),
operation = $('#operation').val();
console.log(firstNumber,operation,secondNumber)
if (operation === '+') {
result = firstNumber + secondNumber;
} else if (operation === '-') {
result = firstNumber - secondNumber;
} else if (operation === '*') {
result = firstNumber * secondNumber;
} else if (operation === '/') {
result = (secondNumber === 0) ? "Cannot divide by 0": (firstNumber / secondNumber);
}
else result = "Only use +,-,* or /";
$('#resultSpan').text(result)
}
// onload does not have to have every line of the script in it
$(function() {
$('button').click(getResult)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='text' id='firstNumber' placeholder='Enter a number'>
<input type='text' id='operation' placeholder='Enter an operation'>
<input type='text' id='secondNumber' placeholder='Enter another number'>
<br>
<button type="button">Calculate</button>
<br>
<p>The result is <span id='resultSpan'></span></p>
推荐阅读
- java - 三星设备中通知待处理意图的问题
- apache-spark - 有没有办法在 Kafka Streaming 的“foreachBatch”函数中传递附加/额外参数?
- python - 为什么linux wc -l命令和python open打开的文件行数不一样?
- kubernetes - 在 Kubernetes Deployment.yaml 文件中定义 .spec.selectors 需要什么?
- r - 提高使用向量提取一行数据的一行代码的速度
- python - 如何使查询集等于 django webapp 中的列表?
- ruby-on-rails - 如何处理 ruby on rails 6 中的验证错误
- python - 使用 lambda 进行元素操作 (pd.DataFrame)
- github - 放弃 GitHub Desktop 中的更改而不将它们移动到回收站
- nlp - 寻找合适的框架来实施企业文档管理和分析系统