Javascript 为什么无论单击哪个按钮,都会得到相同的结果?

Javascript 为什么无论单击哪个按钮,都会得到相同的结果?,javascript,html,Javascript,Html,我正在尝试制作一个basic程序,它获取两个HTML输入字段的值,并根据单击的按钮将它们相乘或相除。目前,我正试图通过document.getElementById()提醒乘法或除法按钮的值 然而,目前它认为我已经点击了乘法按钮,即使我点击了除法 以下是HTML: <form> <input type="text" placeholder="enter a number" id="numOne"/> <input type="text" placeh

我正在尝试制作一个basic程序,它获取两个HTML输入字段的值,并根据单击的按钮将它们相乘或相除。目前,我正试图通过
document.getElementById()
提醒乘法或除法按钮的值

然而,目前它认为我已经点击了乘法按钮,即使我点击了除法

以下是HTML:

<form>
    <input type="text" placeholder="enter a number" id="numOne"/>
    <input type="text" placeholder="enter a number" id="numTwo"/>
    <br>
    <button id="M" onclick="calc()" value="Multiply">Multiply</button>   
    <button id="D" onclick="calc()" value="Divide">Divide</button>
</form>

我试着自己去弄清楚,然后去查,但什么也没找到

您可以为每个按钮添加不同的功能

document.getElementById('M')。addEventListener('click',函数(e){
e、 预防默认值();
var val1=document.getElementById('numOne').value;
var val2=document.getElementById('numTwo').value;
var answ=document.getElementById('answer');
answ.value=val1*val2;
});
document.getElementById('D')。addEventListener('click',函数(e){
e、 预防默认值();
var val1=document.getElementById('numOne').value;
var val2=document.getElementById('numTwo').value;
var answ=document.getElementById('answer');
answ.value=val1/val2;
});


倍增 分


第一个
if
检查(
if(document.getElementById('M')。value==='Multiply'){
)将始终计算为
true
,因为该按钮的值将始终为“Multiply”。您可以将onclick参数传递给
calc()
告诉该方法要做什么,或者定义单独的乘法和除法方法,并调用相应的方法
onclick

这适用于第一个按钮,因为两个按钮具有相同的功能,并且第一个if语句检查M id是否有乘法,它会返回true并单击消息乘法y使用相同的类名来检查值,然后它就会工作。或者这样做:

函数计算(此值){
如果(thisValue==='Multiply'){
警报(“您单击了乘法”);
}else if(thisValue=='Divide'){
警报(“您单击了分割”);
}
}


倍增 分
您正在检查一个永远不会改变的条件。ID
M
将始终具有值
Multiply
D
将始终具有
Divide

您可能正在考虑动态查看所单击按钮的ID。您可以通过传递事件对象,并使用
event.currentTarget
获取对该元素的引用,然后根据找到的ID执行操作

功能计算(事件){
//阻止表单提交
event.preventDefault();
//查找单击的按钮。
const btn=event.currentTarget;
//使用btn的ID来决定要做什么
交换机(btn.id){
案例“M”:
警报(“您单击了乘法”);
打破
案例“D”:
警报(“您单击了分割”);
打破
}
}


倍增 分
为什么按钮的值会发生变化?只需对每个按钮使用不同的功能。在这个问题中根本没有问题陈述。我试图从您提供的代码和给出的答案中猜测问题的性质,并将其添加到中。请随意对其进行进一步编辑,但请记住,没有明确的说明关于一个意外行为的明确声明,这里的问题将被搁置。天哪,谢谢你们!这些回答来得太快了。现在它工作得非常好。谢谢你们救了我!@fructedfrankenstein不是写两个函数,你们还可以给两个按钮一个类,绑定一个函数to按类列出元素;然后您可以使用
this.id
检查id。当然可以。您可以这样做->,我只是写了一些不同的内容,以便于理解。
function calc() {
    if (document.getElementById('M').value === 'Multiply') {
        alert('You clicked multiply');
    } else if (document.getElementById('D').value === 'Divide') {
        alert('You clicked divide');
    }
}