Javascript 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

我的onclick事件找不到开关选项。我肯定我有错误的元素,但我不知道在哪里。任何帮助都太好了!在继续使用剩余的输入值之前,我只做了前几步来验证它是否正常工作

<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的同类。很抱歉,我没有足够的声誉点数,无法在其他地方发表此评论:)。