当我尝试使用 input.value 在这个项目中取平均值时出现问题。无论我输入什么,Avarege 都会变为“0”

There is a problem when i try to use input.value for taking average in this project. Avarege turns '0' whatever I enter to inputs

我正在尝试制作一个简单的页面,用户可以输入期中和期末分数,然后获取有关考试的及格结果。我第一次在没有任何帮助的情况下自己编写了整个代码,我认为它会起作用,但它没有。

当我检查问题并尝试修复它们时,我看到我调用的输入值的平均值每次都 0

当我自己定义 mid 和 final 时,没有输入值,代码在控制台上运行。

我找不到关于值和平均值的问题。

请让我知道我对 DOM 或其他内容的错误和误解在哪里。这里的代码:

 // definitions

let mid = document.querySelector("#midtermInp") // text input for midterm
let final = document.querySelector("#finalInp") // text input for final
let average = (mid.value * 0.4) + (final.value * 0.6)
let result = document.querySelector('#result')
let submitBtn = document.querySelector('#submitBtn')

// function

submitBtn.addEventListener('click', function(){
    if (average >= 0 && average < 50) {
        result.textContent = `Average: ${average} | FF - Failed`
    }
    else if (average >= 50 && average < 60) {
        result.textContent = `Average: ${average} | FD - Failed`
    }
    else if (average >= 60 && average < 65) {
        result.textContent = `Average: ${average} | DD - Conditional Pass`
    }
    else if (average >= 65 && average < 70) {
        result.textContent = `Average: ${average} | DC - Conditional Pass`
    }
    else if (average >= 70 && average < 75) {
        result.textContent = `Average: ${average} | CC - Passed!`
    }
    else if (average >= 75 && average < 80) {
        result.textContent = `Average: ${average} | BC - Passed!`
    }
    else if (average >= 80 && average < 85) {
        result.textContent = `Average: ${average} | BB - Passed!`
    }
    else if (average >= 85 && average < 90) {
        result.textContent = `Average: ${average} | BA - Passed!`
    }
    else if (average >= 90 && average < 100) {
        result.textContent = `Average: ${average} | AA - Passed!`
    }
    mid.value = ""
    final.value = ""
})

问题是当两个输入的值都为空时,您的代码仅在文档加载后立即查找平均值。您需要将平均计算移动到按钮点击事件:

submitBtn.addEventListener('click', function(){
    let average = (mid.value * 0.4) + (final.value * 0.6)