我可以将 getElementbyId 转换为数字以在 JavaScript 中进行数学运算吗?

Can I convert an getElementbyId into a number to make a math operation in JavaScript?

这是一个基本的计算器项目。我无法 return 结果,单击任何按钮后它 returns NaN。它与输入以及它如何转换为数字有关,但“.value”似乎不起作用

html 文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calculator</title>
    <link rel="stylesheet" href="/style.css">
</head>
<body>
    <h1>Calculator</h1>
    <input type="text" id="num1-el">
    <input type="text" id="num2-el">

    <button onclick="add()">Add</button>
    <button onclick="subtract()">Subtract</button>
    <button onclick="divide()">Divide</button>
    <button onclick="multiply()">Multiply</button>

    <p id="sum-el">Sum: </p>
    <script src="/script.js"></script>
</body>
</html>

在 JS 文件中,我可以看到变量获取了元素,但它无法对它们进行数学运算,即使使用 parseInt 和 .value

JavaScript 文件:

let num1 = parseInt(document.getElementById("num1-el").value)
let num2 = parseInt(document.getElementById("num2-el").value) 

let sum = document.getElementById("sum-el")

let operation

function add() {
    operation = num1 + num2;
    sum.textContent += operation + " | ";
}

function subtract() {
    operation = num1 - num2;
    sum.textContent += operation + " | ";
}

function divide() {
    operation = num1 / num2;
    sum.textContent += operation + " | ";  
}

function multiply() {
    operation = num1 * num2;
    sum.textContent += operation + " | ";
}

有人可以帮忙吗?谢谢! ps: 这是我在 stack overflow 中的第一个问题,英语不是我的第一语言,所以对于任何基本错误我提前道歉

当脚本运行时,num1 和 num2 第一次获取它们的值,并且两者都是未定义的。因此,当您单击按钮并触发功能时,所有结果将是 NaN。 试试这个方法:

let num1, num2

function getNumbers() {
    num1 = parseInt(document.getElementById("num1-el").value)
    num2 = parseInt(document.getElementById("num2-el").value)
}

function add() {
    getNumbers();
    operation = num1 + num2;
    sum.textContent += operation + " | ";
}

/* other functions */