有没有办法在函数外声明一个变量? $first 和 $second 似乎无法在函数之外读取它。还有 1 件事 .remove()
不起作用。
function addition(){
let $first = parseInt($('#firstNum').val());
let $second = parseInt($('#secondNum').val());
$('h1').append($first + $second);
}
function subtraction(){
let $first = parseInt($('#firstNum').val());
let $second = parseInt($('#secondNum').val());
$('h1').append($first - $second);
}
function multiplication(){
let $first = parseInt($('#firstNum').val());
let $second = parseInt($('#secondNum').val());
$('h1').append($first * $second);
}
function division(){
let $first = parseInt($('#firstNum').val());
let $second = parseInt($('#secondNum').val());
$('h1').append($first / $second);
}
function clear(){
$('h1').remove();
}```
答案 0 :(得分:1)
还有 1 件事 .remove() 不起作用。
您应该清除空而不是删除该元素:
$("#btnClear").on("click", function(){
$('h1').html('');
})
此外,你应该像下面这样重构你的代码:
$("#btnSubmit").on("click", function(){
var firstNumber = parseInt($('#firstNum').val());
var secondNumber = parseInt($('#secondNum').val());
var operator = $("input[name='operator']:checked").val();
var result = 0;
switch(operator){
case '+':
result = addition(firstNumber, secondNumber);
break;
case '-':
result = subtraction(firstNumber, secondNumber);
break;
case '*':
result = multiplication(firstNumber, secondNumber);
break;
case '/':
result = division(firstNumber, secondNumber);
break;
}
$('h1').html(result);
});
function addition(firstNumber, secondNumber){
return firstNumber + secondNumber;
}
function subtraction(firstNumber, secondNumber){
return firstNumber - secondNumber;
}
function multiplication(firstNumber, secondNumber){
return firstNumber * secondNumber;
}
function division(firstNumber, secondNumber){
return firstNumber / secondNumber;
}
$("#btnClear").on("click", function(){
$('h1').html('');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id ="firstNum" >
<input type="text" id ="secondNum" >
<a id="btnSubmit">Submit</a>
<br>
<a><input name="operator" value = "+" type = "radio" checked/> + </a> <br>
<a><input name="operator" value = "-" type = "radio"/> - </a> <br>
<a><input name="operator" value = "*" type = "radio"/> * </a> <br>
<a><input name="operator" value = "/" type = "radio"/> / </a> <br>
Result: <h1></h1>
<a id="btnClear">Clear</a>
答案 1 :(得分:0)
您需要在函数之外定义变量。
变量可以在当前作用域+内部作用域中读取,但不能在定义它们的外部作用域中读取。
let $first, $second;
function addition() {
$first = parseInt($('#firstNum').val());
$second = parseInt($('#secondNum').val());
$('h1').append($first + $second);
}
MDN 有一篇很好的文章解释了 JavaScript 中的作用域:https://developer.mozilla.org/en-US/docs/Glossary/Scope