我想制作一个有效的计算器。 现在,我想在运营商之间进行转换。
假设我有+和 - 。然后,我有2个号码。操作员就在他们之间。
如果运算符的值为+,则应计算+。 如果operator的值是 - ,则应该计算 - 。
我试过这样的东西,但它不起作用,帮忙?
function Operator() {
if ($('#realOperator').val == ('+');){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else
$('#total').val(a-b);
}
}
信息
#realOperator是运算符的输入
#total是输入结果。
感谢和抱歉,即使语法错误..我是新的!
答案 0 :(得分:1)
这是解决方案@Loris Vonlanthen
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == '+') {
$('#total').val(a + b);
} else
$('#total').val(a - b);
}
答案 1 :(得分:1)
你应该删除你的条件中的分号,你也需要在if语句之外设置a和b,因为你的' - '代码不知道a和b是什么。
您还有一些语法错误,我已在下面为您更正。
function Operator() {
var a = parseInt($('input[name=a]').val(), 10);
var b = parseInt($('input[name=b]').val(), 10);
if ($('#realOperator').val() == ('+')){
$('#total').val(a+b);
} else {
$('#total').val(a-b);
}
}
答案 2 :(得分:0)
你可以试试这段代码
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == ('+')) {
var sum = a + b;
$('#total').val(sum);
} else {
if (a > b) {
var minus = a - b;
} else {
var minus = b - a;
}
$('#total').val(minus);
}
}
如果您发送代码或输入realOperator值,那么我将再次检查
答案 3 :(得分:0)
if语句之间有分号(;)。
此外,您不需要围绕操作员包围括号(' +')。你可以写' +'。
你也错过了' {'与其他但你已经关闭。
您应该尝试以下代码:
function Operator() {
if ($('#realOperator').val == '+'){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else{
$('#total').val(a-b);
}
}
答案 4 :(得分:0)
您的代码中存在一些语法错误,例如:if ($('#realOperator').val == ('+');){
。分号是不必要的。
方法.val()
会将输入值作为字符串。您必须将其强制转换为数字。
最好将逻辑与标记分开。因此,将Operator
函数定义为一个纯函数,它接受两个数字和一个运算符,并计算结果。
function operator(a, b, operation) {
if (operation === '+') {
return a + b;
}
else if (operation === '-') {
return a - b;
}
// you can implement more operations like * / %
throw new Error('Unhandled Operation');
}
$(function () {
$('[data-role="operator"]').on('click', function () {
var operation = $(this).text();
var a = $('#a').val() * 1; // make it number
var b = $('#b').val() * 1; // make it number
$('#total').val( operator(a, b, operation) );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="a" type="text" />
<input id="b" type="text" />
<button data-role="operator">+</button>
<button data-role="operator">-</button>
<hr />
<input id="total" />