首页 > 解决方案 > 替代文件方法

问题描述

总结问题。

  1. 该程序的目标是确定用户整数是偶数还是奇数。
  2. 我相信我的代码可以更简洁。
  3. 有一个逻辑错误指出 HTML 输入元素未定义。

描述你尝试过的东西。

  1. 我将 更改document.getElementById().querySelector()and .getElementByClassName

代码 -

https://jsfiddle.net/pherami1/jfh3xq69/2/

const input = document.getElementById('textInput');<br>
const button = document.getElementById('submitButton');<br>
    
button.addEventListener('click', evenOrOdd);

function evenOrOdd () {
    let result;
    let even;
    let odd;
    
    if (input % 2) {
        result = even;
    } else {
        result = odd;
    }
    document.getElementById('para').textContent = input + " is an " + result + " number.";
}

标签: javascriptif-statementgetelementbyidgetelementsbyclassname

解决方案


有很多事情需要改变——

第一件事 - 如果你想获得输入的价值,使用.value.

第二 - 声明函数input内部evenOrOdd。如果不这样做,那么每次单击按钮时输入的值都不会改变。

第三 - 的输出.value是一个字符串,但是要查找一个数字是偶数还是奇数,我们需要使用 将字符串转换为数字Number()

第四 - 当您检查一个数字是偶数还是奇数时,您将result变量的值更改为evenor oddeven并且odd是变量,而不是字符串。因此,无论 的值result是什么,它总是会是undefinedsinceeven并且odd是未定义的。将 的值更改result为字符串"even""odd"

第五 - 当您检查偶数时,您会这样做(input % 2)。如果数字是偶数,则(input % 2)计算结果为0。0 表示错误。所以,即使你的号码是偶数,你也会得到“奇数”。将 if 条件更改为(input % 2 == 0)

所有这些更改都应用在以下代码段中。检查片段的代码 -

let button = document.getElementById('submitButton');
button.addEventListener('click', evenOrOdd);

function evenOrOdd () {
    //Declare the input inside the function and use .value to get the value and Number() to convert the string to number.
    let input = Number(document.getElementById('textInput').value);
    let result;
    
    //Change the condition
    if (input % 2 == 0) {
        result = "even";//Change to strings, not variables
    } else {
        result = "odd";
    }
    document.getElementById('para').textContent = input + " is an " + result + "number.";
}
<input type="number" id="textInput" />
<button id="submitButton">Submit</button>
<p id="para"></p>


推荐阅读