JavaScript (DOM) 打印下一个素数类型转换问题
JavaScript (DOM) print next prime typecasting issue
我的一位研究多媒体艺术的朋友在他的 HTML+JavaScript 家庭作业中接到了一项任务,任务如下:制作一个按钮,单击该按钮会生成下一个素数(下一个在 <p>
标签之间给出的那个之后。他把它带给我来解决它,乍一看我认为这是一个非常简单的问题并编写了代码。但是它没有打印下一个素数,而是打印 NaN
现在我对自己简单的 JavaScript 技能没有以前那么自信了。这是我的代码:
function isPrime(num) {
for (var i = 2; i < Math.sqrt(num) + 1; ++i) {
if(num % i === 0) {
return false;
}
}
return num !== 1;
}
function getNextPrime(prime) {
for (var count = prime + 1; ; ++count) {
if (isPrime(count)) {
break;
}
}
return count;
}
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").value);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next;
}
<!DOCTYPE html>
<html>
<head>
<title>Prime Number Generator</title>
<script type="text/javascript" src="main.js"></script>
</head><body>
<button onclick="printNextPrime()">Generate Next Prime!</button>
<p id="primePar">2</p>
</body>
</html>
我怀疑问题出在我所做的错误类型转换上,但是当我仔细扫描我的代码几次后,我无法找到它。请帮忙!
您的问题在这里:
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").value);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next.toString();
}
您正在查找值 属性,但 属性 仅存在于 "input" DOM 个对象中。相反,您应该也可以在那里使用 .innerHTML。
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").innerHTML);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next.toString();
}
我的一位研究多媒体艺术的朋友在他的 HTML+JavaScript 家庭作业中接到了一项任务,任务如下:制作一个按钮,单击该按钮会生成下一个素数(下一个在 <p>
标签之间给出的那个之后。他把它带给我来解决它,乍一看我认为这是一个非常简单的问题并编写了代码。但是它没有打印下一个素数,而是打印 NaN
现在我对自己简单的 JavaScript 技能没有以前那么自信了。这是我的代码:
function isPrime(num) {
for (var i = 2; i < Math.sqrt(num) + 1; ++i) {
if(num % i === 0) {
return false;
}
}
return num !== 1;
}
function getNextPrime(prime) {
for (var count = prime + 1; ; ++count) {
if (isPrime(count)) {
break;
}
}
return count;
}
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").value);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next;
}
<!DOCTYPE html>
<html>
<head>
<title>Prime Number Generator</title>
<script type="text/javascript" src="main.js"></script>
</head><body>
<button onclick="printNextPrime()">Generate Next Prime!</button>
<p id="primePar">2</p>
</body>
</html>
我怀疑问题出在我所做的错误类型转换上,但是当我仔细扫描我的代码几次后,我无法找到它。请帮忙!
您的问题在这里:
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").value);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next.toString();
}
您正在查找值 属性,但 属性 仅存在于 "input" DOM 个对象中。相反,您应该也可以在那里使用 .innerHTML。
function printNextPrime() {
var p = parseInt(document.getElementById("primePar").innerHTML);
var next = getNextPrime(p);
document.getElementById("primePar").innerHTML = next.toString();
}