Javascript Onclick事件未选择正确的开关选项
我的onclick事件找不到开关选项。我肯定我有错误的元素,但我不知道在哪里。任何帮助都太好了!在继续使用剩余的输入值之前,我只做了前几步来验证它是否正常工作Javascript Onclick事件未选择正确的开关选项,javascript,onclick,switch-statement,Javascript,Onclick,Switch Statement,我的onclick事件找不到开关选项。我肯定我有错误的元素,但我不知道在哪里。任何帮助都太好了!在继续使用剩余的输入值之前,我只做了前几步来验证它是否正常工作 <html> <head> <title>Operators</title> <script> function calcValue(elem) { var firstNumber = document.getElementById("fir
<html>
<head>
<title>Operators</title>
<script>
function calcValue(elem) {
var firstNumber = document.getElementById("firstNumber").value;
var secondNumber = document.getElementById("secondNumber").value;
var operator = document.getElementById("operator").value;
operator = elem.value;
switch (operator) {
case "add":
alert(firstNumber + " + " + secondNumber + " = " + (firstNumber + secondNumber));
break;
case "div":
alert(firstNumber + " / " + secondNumber + " = " + (firstNumber / secondNumber));
break;
case "mod":
alert(firstNumber + " % " + secondNumber + " = " + (firstNumber % secondNumber));
break;
case "multiply":
alert(firstNumber + " * " + secondNumber + " = " + (firstNumber * secondNumber));
break;
case "subtract":
alert(firstNumber + " - " + secondNumber + " = " + (firstNumber - secondNumber));
break;
}
}
</script>
</head>
<body>
<p>firstNumber is 5</p>
<p>secondNumber is 12</p>
<p id="operator"></p>
<input type="button" value="Addition" onclick="calcValue('add'.this);">
<input type="button" value="Division" onclick="calcValue('div'.this);">
<input type="button" value="Modulus" onclick="calcValue('mod');">
<input type="button" value="Multiplication" onclick="calcValue('multiply');">
<input type="button" value="Subtraction" onclick="calcValue('subtract');">
<input type="button" value="Negation" onclick="calcValue('neg');">
<br />
<input type="button" value="Equals ==" onclick="calcValue('equalto');">
<input type="button" value="Not Equals !=" onclick="calcValue('notequalto');">
<input type="button" value="Greater Than >" onclick="calcValue('greater');">
<input type="button" value="Less Than <" onclick="calcValue('less');">
<input type="button" value="Greater Than or Equal >=" onclick="calcValue('greaterequals');">
<input type="button" value="Less Than or Equal <=" onclick="calcValue('lessequals');">
</body>
</html>
操作员
函数计算值(elem){
var firstNumber=document.getElementById(“firstNumber”).value;
var secondNumber=document.getElementById(“secondNumber”).value;
var operator=document.getElementById(“operator”).value;
运算符=元素值;
开关(操作员){
案例“添加”:
警报(firstNumber+“+”+secondNumber+“=”+(firstNumber+secondNumber));
打破
案件“div”:
警报(firstNumber+“/”+secondNumber+“=”+(firstNumber/secondNumber));
打破
案例“mod”:
警报(firstNumber+“%”+secondNumber+“=”+(firstNumber%secondNumber));
打破
“乘法”情况:
警报(firstNumber+“*”+secondNumber+“=”+(firstNumber*secondNumber));
打破
案例“减法”:
警报(firstNumber+“-”+secondNumber+“=”+(firstNumber-secondNumber));
打破
}
}
第一个数字是5
第二个号码是12
乍一看,我发现了两三个问题,但最相关的是,我在HTML代码中找不到id为firstNumber和secondNumber的元素。见附注:
function calcValue(elem) {
// NOTE: Your are trying to get an element by an id that does not exist.
var firstNumber = document.getElementById("firstNumber").value;
// NOTE: Again, your are trying to get an element by an id that does not exist.
var secondNumber = document.getElementById("secondNumber").value;
var operator = document.getElementById("operator").value;
// NOTE: Are you sure you are calling calcValue with an HTMLElement?
operator = elem.value;
switch (operator) {
case "add":
alert(firstNumber + " + " + secondNumber + " = " + (firstNumber + secondNumber));
break;
case "div":
alert(firstNumber + " / " + secondNumber + " = " + (firstNumber / secondNumber));
break;
case "mod":
alert(firstNumber + " % " + secondNumber + " = " + (firstNumber % secondNumber));
break;
case "multiply":
alert(firstNumber + " * " + secondNumber + " = " + (firstNumber * secondNumber));
break;
case "subtract":
alert(firstNumber + " - " + secondNumber + " = " + (firstNumber - secondNumber));
break;
}
}
另外,要注意在onclick属性中传递给calcValue的内容。Javascript将“无声地”失败,它会给你一种什么都没有发生的印象 我会这样做: 查看
第一个数字是5
第二个数字是12
函数计算值(elem){
var firstNumber=document.getElementById(“firstNum”).textContent;
firstNumber=firstNumber.match(/\d+/);
var secondNumber=document.getElementById(“secondNum”).textContent;
secondNumber=secondNumber.match(/\d+/);
开关(elem){
案例“添加”:
警报(firstNumber+“+”+secondNumber+“=”+(parseInt(firstNumber)+parseInt(secondNumber)));
打破
案件“div”:
警报(firstNumber+“/”+secondNumber+“=”+(parseInt(firstNumber)/parseInt(secondNumber)));
打破
案例“mod”:
警报(firstNumber+“%”+secondNumber+“=”+(parseInt(firstNumber)%parseInt(secondNumber)));
打破
“乘法”情况:
警报(firstNumber+“*”+secondNumber+“=”+(parseInt(firstNumber)*parseInt(secondNumber)));
打破
案例“减法”:
警报(firstNumber+“-”+secondNumber+“=”+(parseInt(firstNumber)-parseInt(secondNumber)));
打破
}
}
什么都没有。我可以看到那个页面,但当我点击按钮时,什么也没发生。你能把它做成小提琴吗?@chipChocolate.py“给一个人一条鱼,他吃一天;教一个人钓鱼,他吃一辈子”。很明显,Heather正在学习,所以我认为如果我们只是为他们自己编写代码,我们是在伤害Heather或Heather的同类。很抱歉,我没有足够的声誉点数,无法在其他地方发表此评论:)。