Javascript计算器未在输入中计算
我正在尝试制作我自己的简单的短javascript计算器,但我似乎采取了与我找到的任何教程不同的方法,我在代码中找不到错误Javascript计算器未在输入中计算,javascript,Javascript,我正在尝试制作我自己的简单的短javascript计算器,但我似乎采取了与我找到的任何教程不同的方法,我在代码中找不到错误 <!DOCTYPE html> <head> <meta charset = 'utf-8'> </head> <html> <body> <input name='x' onchange='this.value=eval(this.value)'> <br> &
<!DOCTYPE html>
<head>
<meta charset = 'utf-8'>
</head>
<html>
<body>
<input name='x' onchange='this.value=eval(this.value)'>
<br>
<button>1</button>
<button>2</button>
<button>3</button>
<br>
<button>4</button>
<button>5</button>
<button>6</button>
<br>
<button>7</button>
<button>8</button>
<button>9</button>
<br>
<button>0</button>
<button>.</button>
<button>+</button>
<br>
<button>*</button>
<button>/</button>
<button id='enter'>=</button>
<script>
function el(x){return document.querySelector(x);}
function els(x){return document.querySelectorAll(x);}
var x=el("input");
function g(){x.value+=this.innerHTML;}
var t = els("button");
for(i=0;i<t.length;i++){
t[i].onclick=g;
}
1.
2.
3.
4.
5.
6.
7.
8.
9
0
.
+
*
/
=
函数el(x){returndocument.querySelector(x);}
函数els(x){returndocument.querySelectorAll(x);}
var x=el(“输入”);
函数g(){x.value+=this.innerHTML;}
var t=els(“按钮”);
对于(i=0;i您标记的两行肯定是个问题,它们毫无意义。您不能将onclick
设置为HTMLInputElement
,对元素集合(t
)调用eval
)也没有任何意义
除此之外,您的基本方法是合理的。您只希望=
按钮上的处理程序执行与更改处理程序中相同的操作。因为您希望它们执行相同的操作,所以将该逻辑放在一个函数中,这两个函数都调用:
function calcuate() {
x.value = eval(x.value);
}
然后:
及
有了这些变化,一切都很好:
函数el(x){
返回单据查询选择器(x);
}
函数els(x){
返回文档。查询选择全部(x);
}
var x=el(“输入”);
函数g(){
x、 value+=this.innerHTML;
}
var t=els(“按钮”);
对于(i=0;i
1.
2.
3.
4.
5.
6.
7.
8.
9
0
.
+
*
/
=
好的,您采取了不同的方法。问题是什么?它是否工作不正常?如果是,它是如何工作不正常的?您看到了哪些您不期望的结果?为什么要将onclick
设置为input
元素?为什么要将innerHTML
设置为eval(t)
当t
是元素的集合时?从一个有意义的方法开始。所示的逻辑肯定没有意义,我们在这里不是为了写这整件事you@charlietfl:事实上,以上大部分都很好。。。
function calcuate() {
x.value = eval(x.value);
}
el('#enter').onclick = calcuate;
<input name="x" onchange="calcuate();">