javascript - 如何让页面加载时调用的函数与按钮一起使用
问题描述
let n = document.getElementById('input').value;
const answer = document.getElementById('answer');
const button = document.getElementById('start');
button.addEventListener('click', isPrime(n));
function isPrime(n) {
if (n === 1) {
answer.innerHTML = '1 is neither a prime nor a composit number. It is a unit.';
} else if (n < 0) {
answer.innerHTML = 'It must be a positiv number.'
}
for (const d = 2; d <= n; d++) {
if (n % d == 0){
answer.innerHTML = 'It is not a Prime Number';
break;
} else {
answer.innerHTML = 'It is a Prime Number';
}
}
}
它是一个带有输入、按钮和段落的简单网页。当用户输入一个数字并按下按钮时,段落应该改变它是否是素数。但它只能通过刷新站点而不是按下按钮来工作......
解决方案
您将立即获得输入的值,let n = document.getElementById('input').value;
然后您也isPrime
立即调用该函数。
你可以这样做:
const answer = document.getElementById('answer');
const button = document.getElementById('start');
button.addEventListener('click', isPrime); // dont call the function, just pass it.
function isPrime() {
let n = document.getElementById('input').value; // get the value when function runs.
if (n === 1) {
answer.innerHTML = '1 is neither a prime nor a composit number. It is a unit.';
} else if (n < 0) {
answer.innerHTML = 'It must be a positiv number.'
}
for (const d = 2; d <= n; d++){
if (n % d == 0){
answer.innerHTML = 'It is not a Prime Number';
break;
} else {
answer.innerHTML = 'It is a Prime Number';
}
}
}
推荐阅读
- reactjs - 为什么在 props 没有改变的情况下 React 组件会重新渲染?
- mysql - Sequelize hasMany 工作正常,但反比关系不起作用
- python - 如何使用所有包在 pycharm 中创建 anaconda python 环境?
- javascript - 递归函数没有响应
- asp.net-core - 无法在 Hangfire 作业中使用依赖注入
- java - 将 TreeMap 转换为两个数组,转换问题
- java - 为什么这段代码一直显示错误
- python - 实验功能
- python - “当真”循环不运行
- python - 为什么我得到 TypeError: __init__() missing 1 required positional argument: 'master' in Python