【问题标题】:max Value of Three Numbers DOM Manipulation三个数字DOM操作的最大值
【发布时间】:2018-09-10 19:31:34
【问题描述】:

这是我的项目,它返回 3 个数字中的最大值。我想要做的是在我拥有的三个输入字段中输入 3 个数字,当我单击按钮计算时,我希望这三个数字中最大的一个显示在 h1 之后。我将输入传递给数字,然后我将这三个数字组成一个数组,然后我遍历数组,将每个元素与第一个元素进行比较。但它不起作用。我真的找不到我的代码中的错误。有人可以帮忙吗?

这里是html:

 <!DOCTYPE html>
    <html>
    <head>
     <meta charset="UTF-8">
     <title>Max Value Of Three Numbers</title>

    </head>
    <body>
     <h1>The biggest number is: <span id="maxDisplay">0</span></h1>
     <input type="number" name="" id="num1">
     <input type="number" name="" id="num2">
     <input type="number" name="" id="num3">
     <button id="calculateMax">Calculate</button>

     <script type="text/javascript" src="maxValue.js"></script>
    </body>
    </html>

还有 JavaScript:

var maxDisplay = document.querySelector("#maxDisplay");

var number1 = document.getElementById("num1");
var num1 = Number(number1.value);
var number2 = document.getElementById("num2");
var num2 = Number(number2.value);
var number3 = document.getElementById("num3");
var num3 = Number(number3.value);
var arr = [num1, num2, num3];

var calculateMax = document.getElementById("calculateMax");

var maxNumber = 0;



calculateMax.addEventListener("click", function(){
    var maxNumber = arr[0];
    for (var i = 1; i < arr.length; i++) 
    {
        if(arr[i] > maxNumber) 
            { 
                maxNumber = arr[i];
            }
    }
    maxDisplay.textContent = maxNumber;

});

【问题讨论】:

    标签: javascript arrays function dom dom-manipulation


    【解决方案1】:

    这是因为一旦到达 HTML 文件中的脚本标记(加载脚本),您就会获取输入字段的值,因此这些值在那时是空的。像这样移动部分代码。

    var maxDisplay = document.querySelector("#maxDisplay");
    var calculateMax = document.getElementById("calculateMax");
    var maxNumber = 0;
    var number1 = document.getElementById("num1");
    var number2 = document.getElementById("num2");
    var number3 = document.getElementById("num3");
    
    calculateMax.addEventListener("click", function(){
        var num1 = Number(number1.value);
        var num2 = Number(number2.value);
        var num3 = Number(number3.value);
        var arr = [num1, num2, num3];
    
        var maxNumber = arr[0];
        for (var i = 1; i < arr.length; i++) {
            if(arr[i] > maxNumber)
                maxNumber = arr[i];
        }
        maxDisplay.textContent = maxNumber;
    
    });
    

    这样,您将在单击按钮时获得这些值。附带说明一下,您无需像这样手动输入 for 循环即可获得数组的最大值。

    maxDisplay.textContent = Math.max.apply(null, arr);
    

    【讨论】:

      【解决方案2】:

      var res = document.getElementById('maxDisplay');
      var num1 = document.getElementById('num1');
      var num2 = document.getElementById('num2');
      var num3 = document.getElementById('num3');
      var btn = document.getElementById('calculateMax')
      btn.addEventListener('click',function() {
      var arr = [num1.value,num2.value,num3.value]
      res.innerHTML = Math.max(...arr);
      })
      <html>
          <head>
           <meta charset="UTF-8">
           <title>Max Value Of Three Numbers</title>
      
          </head>
          <body>
           <h1>The biggest number is: <span id="maxDisplay">0</span></h1>
           <input type="number" name="" id="num1">
           <input type="number" name="" id="num2">
           <input type="number" name="" id="num3">
           <button id="calculateMax">Calculate</button>
          </body>
          </html>

      【讨论】:

        猜你喜欢
        • 2021-12-24
        • 2022-12-09
        • 2019-04-22
        • 1970-01-01
        • 1970-01-01
        • 2018-10-18
        • 1970-01-01
        • 2012-02-03
        • 2020-06-12
        相关资源
        最近更新 更多