替代文件法
Alternative Document Method
总结问题。
- 此程序的目标是确定用户整数是偶数还是奇数。
- 我相信我的代码可以更简洁。
- 存在逻辑错误,指出 HTML 输入元素未定义。
描述您尝试过的方法。
- 我将
document.getElementById()
更改为 .querySelector()
和 .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.";
}
您需要更改许多内容 -
第一件事——如果你想得到输入的值,使用.value
。
其次 - 在 evenOrOdd
函数中声明 input
。如果不这样做,则每次单击按钮时输入的值都不会改变。
第三 - .value
的输出是一个字符串,但是要判断一个数是偶数还是奇数,我们需要使用 Number()
.[=33= 将字符串转换为数字]
第四 - 当您检查一个数字是偶数还是奇数时,您将 result
变量的值更改为 even
或 odd
。 even
和 odd
是变量,不是字符串。所以,无论 result
的值是什么,它总是 undefined
因为 even
和 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>
总结问题。
- 此程序的目标是确定用户整数是偶数还是奇数。
- 我相信我的代码可以更简洁。
- 存在逻辑错误,指出 HTML 输入元素未定义。
描述您尝试过的方法。
- 我将
document.getElementById()
更改为.querySelector()
和.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.";
}
您需要更改许多内容 -
第一件事——如果你想得到输入的值,使用.value
。
其次 - 在 evenOrOdd
函数中声明 input
。如果不这样做,则每次单击按钮时输入的值都不会改变。
第三 - .value
的输出是一个字符串,但是要判断一个数是偶数还是奇数,我们需要使用 Number()
.[=33= 将字符串转换为数字]
第四 - 当您检查一个数字是偶数还是奇数时,您将 result
变量的值更改为 even
或 odd
。 even
和 odd
是变量,不是字符串。所以,无论 result
的值是什么,它总是 undefined
因为 even
和 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>