Всем добрый вечер!
Помогите, кто чем может неопытному(
Пишу свой первый мини-проект "Калькулятор"
Проблема, что если алертом выводить результаты операций - выдает числа, если эти результаты записывать в $('#display').text() - выдает NaN
Подскажите на что обратить внимание(
<div id = "case">
<div id = "screen"><p id = "display"></p></div>
<div id = "buttons">
<ul class = "row-first">
<li><input id = 'reset' type = 'submit' value = 'R'/></li>
</ul>
<ul class = "row">
<li><input class = 'btn' type = 'submit' value = '1'/></li>
<li><input class = 'btn' type = 'submit' value = '2'/></li>
<li><input class = 'btn' type = 'submit' value = '3'/></li>
<li><input class = 'btn' type = 'submit' value = '+'/></li>
</ul>
<ul class = "row">
<li><input class = 'btn' type = 'submit' value = '4'/></li>
<li><input class = 'btn' type = 'submit' value = '5'/></li>
<li><input class = 'btn' type = 'submit' value = '6'/></li>
<li><input class = 'btn' type = 'submit' value = '-'/></li>
</ul>
<ul class = "row">
<li><input class = 'btn' type = 'submit' value = '7'/></li>
<li><input class = 'btn' type = 'submit' value = '8'/></li>
<li><input class = 'btn' type = 'submit' value = '9'/></li>
<li><input class = 'btn' type = 'submit' value = '*'/></li>
</ul>
<ul class = "row">
<li><input class = 'btn' type = 'submit' value = '0'/></li>
<li><input class = 'btn' type = 'submit' value = '.'/></li>
<li><input class = 'btn' type = 'submit' value = '='/></li>
<li><input class = 'btn' type = 'submit' value = '/'/></li>
</ul>
</div>
</div>
//Объявление переменных
var display = $('#display');
var str = '';
var btns = document.getElementsByClassName('btn');
//Сброс
$('#reset').click( function() {
display.html('');
});
//Пробегаюсь по всем кнопкам
for (let i = 0; i < btns.length; i++) {
show_number(btns[i]);
}
//Вывожу числа на экран
function show_number(button) {
$(button).click(function() {
var value = this.getAttribute('value');
str += value;
display.text(str);
//При нажатии на равно происходит магия, а потом на дисплей выводится результат
if (value === '=') {
var slice_str = str.slice(0, str.length - 1);
check_operation(slice_str);
display.text(add);
}
});
}
//Определяем с какой операцией будет работы
function check_operation(line) {
var split = line.split('');
for (let i = 0; i < split.length; i++) {
switch (split[i]) {
case '+' :
var plus = line.split('+');
add(plus);
break;
case '-' :
var minus = line.split('-');
deduct(minus);
break;
case '*' :
var star = line.split('*');
mult(star);
break;
case '/' :
var fraction = line.split('/');
divide(fraction);
break;
}
}
}
function add(expr) {
var sum = parseFloat(expr[0]) + parseFloat(expr[1]);
//alert(sum); //Для отдалки
//Неужели правда NaN?
/*if (!isNaN(sum)) {
return sum;
} else {
alert(sum);
}*/
return sum;
}
function deduct(expr) {
var ded = parseFloat(expr[0]) - parseFloat(expr[1]);
alert(ded);
}
function mult(expr) {
var mul = parseFloat(expr[0]) * parseFloat(expr[1]);
alert(mul);
}
function divide(expr) {
var div = parseFloat(expr[0]) / parseFloat(expr[1]);
alert(div);
}