我的代码就像:
//*Global variables*
var numStr="";
var symbol="";
var numero=[];
var total=0;
var totaldisplay="";
//...
//*Event*
$("button").click(function(){
var key=$(this).html();
// *if statements*
if(/\d{1,}|\./.test(key)){
numStr+=key;
totalDisplay+=key;
}
if(/÷|\+|-|×/.test(key)) {
symbol=key;
numero.push(parseFloat(numStr));
numStr="";
totalDisplay+=key;
}
if(/=/.test(key)){
numero.push(parseFloat(numStr));
numStr="";
....
total= // *Operations*
totalDisplay+="="+total;
}
//....
$("#display2").html(totalDisplay);
})
我想我在第一篇文章中没有正确说出问题。 它是一个计算器,用户点击该键,并在计算器的显示中累加。
示例:
numStr="2" and totalDisplay="2"
。numStr="24" and totalDisplay="24"
。symbol="+"
,numStr converted into a type number and pushed into the array numero
,numStr=""
和totalDisplay="24+"
。numStr=9
,totalDisplay="24+9"
。第五次点击=:numStr converted into a type number and push into the array numero
,numStr=""
,进行操作并totalDisplay="24+9=33"
(问题)第六次点击7:numStr="97"
,"totalDisplay="24+9=337"
。
一旦超过第一个操作,我怎么能开始新的第二个操作。
因此,在第五次点击后,显示第一个操作,所有变量都设置为0或空字符串“”;并点击第六次
numStr="7"
和totalDisplay="7"
。
答案 0 :(得分:0)
重置点击处理程序开头的变量。
$("button").click(function() {
numStr = "";
var key = $(this).html();
//if statements *
if (/\d{1,}|\./.test(key)) {
numStr += key;
}
// ....
})

答案 1 :(得分:0)
尝试在点击事件中重置全局变量。
希望这会有所帮助......
答案 2 :(得分:0)
你应该做这样的事情 -
var numStr="";
var total=0;
$("button").click(function(){
// Variable should always be defined at top of function definition.
var key = $(this).html();
// Early return, it's a good practise
if(!(/\d{1,}|\./.test(key))){
return;
}
numStr = key;
})
答案 3 :(得分:0)
试试这个
//*Global variables*
var numStr="";
var total=0;
//...
//*Event*
$("button").click(function(){
var numStr = "";
var key=$(this).html();
// *if statements*
if(/\d{1,}|\./.test(key)){
numStr+=key;}
//....
})