三个数中的最大值 DOM 操作

3
这是一个返回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;

});
2个回答

2
这是因为在HTML文件中的脚本标签(script)到达时(脚本加载)立即获取输入字段的值,因此这些值此时为空。将代码移动如下。
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);

0

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>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接