Javascript 如何使y的值等于计算器中操作数后的数字?

Javascript 如何使y的值等于计算器中操作数后的数字?,javascript,html,calculator,Javascript,Html,Calculator,我使用display.innerHTML将操作数之前的数字存储为x,并存储操作数。让变量y等于在操作数之后输入的数字的方法让我有点为难。我最好的猜测是一种循环,下面是代码: 计算器v2.0 身体{ 背景:线性梯度(蓝色30%,黑色50%,绿色80%); } 分区集装箱{ 背景色:#1de4fd; 边框:1px纯黑; 高度:210px; 宽度:195px; } div表tr td div{ 背景色:白色; 宽度:180px; 高度:25px; 文本对齐:右对齐; } 钮扣{ 高度:40px;

我使用display.innerHTML将操作数之前的数字存储为x,并存储操作数。让变量y等于在操作数之后输入的数字的方法让我有点为难。我最好的猜测是一种循环,下面是代码:


计算器v2.0
身体{
背景:线性梯度(蓝色30%,黑色50%,绿色80%);
}
分区集装箱{
背景色:#1de4fd;
边框:1px纯黑;
高度:210px;
宽度:195px;
}
div表tr td div{
背景色:白色;
宽度:180px;
高度:25px;
文本对齐:右对齐;
}
钮扣{
高度:40px;
宽度:40px;
}
1.
2.
3.
/
4.
5.
6.
*
7.
8.
9
-
0
.
+
=
var display=document.getElementById(“display”);
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var三=document.getElementById(“三”);
var four=document.getElementById(“four”);
var five=document.getElementById(“五”);
var six=document.getElementById(“six”);
var seven=document.getElementById(“seven”);
var八=document.getElementById(“八”);
var nine=document.getElementById(“nine”);
var zero=document.getElementById(“零”);
var decimal=document.getElementById(“十进制”);
var add=document.getElementById(“add”);
var subtract=document.getElementById(“subtract”);
var multiply=document.getElementById(“multiply”);
var divide=document.getElementById(“divide”);
var calculate=document.getElementById(“相等”);
var op=“”//单击操作按钮时要填写的空白op变量
一、addEventListener(“点击”,addOne)//将事件添加到按钮1
函数addOne(){
display.innerHTML+=1;//使显示等于末尾的显示+1
}
2.添加EventListener(“单击”,添加两个);
函数addTwo(){
display.innerHTML+=2;
}
三、添加三个列表(“单击”,添加三个);
函数addThree(){
display.innerHTML+=3;
}
4.添加EventListener(“单击”,添加四个);
函数addFour(){
display.innerHTML+=4;
}
5.添加事件列表(“单击”,添加5);
函数addFive(){
display.innerHTML+=5;
}
六、添加六个列表(“单击”,添加六个);
函数addSix(){
display.innerHTML+=6;
}
添加七个列表(“单击”,添加七个);
函数addSeven(){
display.innerHTML+=7;
}
八、添加文本列表(“单击”,添加右键);
函数addEight(){
display.innerHTML+=8;
}
九、添加列表(“点击”,添加九);
函数addNine(){
display.innerHTML+=9;
}
zero.addEventListener(“单击”,addZero);
函数addZero(){
display.innerHTML+=0;
}
decimal.addEventListener(“单击”,addDecimal);
函数addDecimal(){
display.innerHTML+=';
}
add.addEventListener(“单击”,addAdd);
函数addAdd(){
x=display.innerHTML;//将当前显示编号指定为x
op='+';//将运算符+赋给变量op
z=x+op;//可能是我将在下面解释的解决方案的一部分
display.innerHTML+=op;//显示等于显示的数字+操作
calculate.addEventListener(“单击”,计算);
函数calc(){//calc函数需要定义y这就是我的问题所在
display.innerHTML=eval(x+op+y);//在建工程计算公式
}
}
subtract.addEventListener(“单击”,addSubtract);
函数addSubtract(){
x=display.innerHTML;
op='-';
z=x+op;
display.innerHTML+=op;//显示等于显示的数字+操作
calculate.addEventListener(“单击”,计算);
函数计算(){
display.innerHTML=eval(x+op+y);
}
}
multiply.addEventListener(“单击”,addMultiply);
函数addMultiply(){
x=display.innerHTML;
op='*';
z=x+op;
display.innerHTML+=op;//显示等于显示的数字+操作
calculate.addEventListener(“单击”,计算);
函数计算(){
display.innerHTML=eval(x+op+y);
}
}
divide.addEventListener(“单击”,addDivide);
函数addDivide(){
x=display.innerHTML;
op='/';
z=x+op;
display.innerHTML+=op;//显示等于显示的数字+操作
calculate.addEventListener(“单击”,计算);
函数计算(){
display.innerHTML=eval(x+op+y);
}
}

您从未定义过x、y和z。@connexo x和z是(尽管从未使用过z)。然而,y是未定义的,这就是这个问题所要问的。如何从形式为xy的东西中提取y是的,z是一个变量,我认为在定义y时会很有用,所以我想我应该把它留在里面。也许给别人一个比我更有用的建议。你试过
y=display.innerHTML.replace(z',)
?尽管您也可以执行
display.innerHTML=eval(display.innerHTML)
,因为您所做的只是重建相同的文本。这非常有效。谢谢你,尼克。我已经做了几个小时了