我正在构建一个计算器,它的JavaScript功能不能正常工作。我检查了我的代码,我确信我有正确的语法和一切。计算器功能不工作 - Javascript
继承人的链接到我的codepen http://codepen.io/theMugician/pen/ojEEGr
下面是HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="calculator" class="container">
<div id="screen" class="text-right">
0
</div>
<div id="controls">
<div id="circle">
<div class="button equals">
=
</div>
</div>
<div style="margin-top: ;" class="buttonRow text-center">
<div class="button">
AC
</div>
<div class="button">
CE
</div>
<div class="button">
%
</div>
<div class="button">
/
</div>
</div>
<div class="buttonRow text-center">
<div class="button">
7
</div>
<div class="button">
8
</div>
<div class="button">
9
</div>
<div class="button">
*
</div>
</div>
<div class="buttonRow text-center">
<div class="button">
4
</div>
<div class="button">
5
</div>
<div class="button">
6
</div>
<div class="button">
+
</div>
</div>
<div class="buttonRow text-center">
<div class="button">
1
</div>
<div class="button">
2
</div>
<div class="button">
3
</div>
<div class="button">
-
</div>
</div>
</div>
</div>
这里是Java脚本
var entries = [];
var total = 0;
var temp = '';
$(".button").on("click", function() {
\t var val = $(this).text();
// Got a number, add to temp
if (!isNaN(val) || val === '.') {
temp += val;
$("#screen").val(temp.substring(0,10));
// Got some symbol other than equals, add temp to our entries
// then add our current symbol and clear temp
} else if (val === 'AC') {
entries = [];
temp = '';
total = 0;
$("#screen").val('')
// Clear last entry
} else if (val === 'CE') {
temp = '';
$("#screen").val('')
// Got the equals sign, perform calculation
} else if (val === '=') {
\t entries.push(temp);
// Definitely not the most elegant
var newTotal = eval(entries.join('').substring(0, 10))
$("#screen").val(newTotal);
\t \t entries = [];
temp = '';
// Push operators
} else {
entries.push(temp);
entries.push(val);
temp = '';
}
});
它如何工作不正确...给测试用例和预期结果。 – Hogan
你可以更具体地了解什么是不工作? – PhilVarg
'#screen'是一个DIV,但是你正在做'$(“#screen”).val()',但是DIV没有值。改用'$(“#screen”)。text()'。 – adeneo