文件未定义javascript错误 [英] document is not defined javascript error
问题描述
我已经完成了一个项目并且运行得很完美。我一直收到错误通知,说明'文档'没有定义。每次我处理文档时都会收到相同的通知。有没有办法可以防止它被识别为错误?
I have finished a project and it runs perfectly.I keep getting error notifications that 'document' is not defined. I have the same notification every time I address the document. Is there a way I can keep this from being recognized as an error?
JS:
function check_prime() {
var input = document.getElementById("enteredNumber").value;
var number = parseInt(input);
if (isNaN(number)) {
alert("Oops! Please enter a valid number.");
document.getElementById("enteredNumber").value="";
document.getElementById("answer").innerHTML = "";
document.getElementById("enteredNumber").focus();
}
else if (input.length === 0) {
alert("Please enter a valid input");
document.getElementById("enteredNumber").focus();
}
else if (!isNaN(number)) {
var divisors = is_perfect(number);
if (divisors) {
document.getElementById("answer").innerHTML = "Congratulations! " + number + " is a perfect number.";
alert("Congratulations! " + number + " is a perfect number. The divisors are: " + divisors.toString() + ".") ;
}
else {
document.getElementById("answer").innerHTML = "I'm sorry! " + number + " is not a perfect number."
}
}
else {
document.getElementById("answer").innerHTML = "Please enter a number.";
}
}
function is_perfect(number) {
var temp = 0;
var divisors = [];
for(var i=1;i<=number/2;i++) {
if (number%i === 0) {
divisors.push(i);
temp += i;
}
}
return temp === number ? divisors : null;
}
function clear_textbox(){
document.getElementById("answer").innerHTML = "";
document.getElementById("enteredNumber").value="";
document.getElementById("enteredNumber").focus();
}
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="main.css">
<link href="https://fonts.googleapis.com/css?family=Oswald:700" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">
</head>
<body>
<h2> PERFECTION </h2>
<h3> PLEASE ENTER A NUMBER: </h3><br>
<div>
<input type="text" id="enteredNumber" autofocus value = "" /> <br><br>
<input type="submit" value="Check"
title="Perfection"
onclick="check_prime()" />
<input type="submit" value="Clear"
title="Click here to clear the text box."
onclick="clear_textbox()" />
<br><br>
<p id="answer"></p>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<script src="app.js">
</script>
我是还得到警报没有定义的错误...我不知道我是否错过了什么。
I am also getting errors that 'alert' is not defined... I don't know if I missed something.
推荐答案
更新:新信息
尝试添加
Update: new info
Try adding
/*eslint-env browser*/
位于顶部。
错误:未定义'document'。 [no-undef] document.getElementById(answer)。innerHTML =;
ERROR: 'document' is not defined. [no-undef] document.getElementById("answer").innerHTML = "";
此错误是一个lint错误(参见 eslint [no-undef] )。它不会影响您在浏览器中运行的代码,但是当您检测到lint错误时,您的本地构建可能会停止运行。
This error is a lint error (See eslint [no-undef]). It will not affect your code running in a browser, but your local build may be stopped from running when it detects lint errors.
您可能正在使用 eslint
,请查看本指南,您应该configure
You are probably using eslint
, so check out this guide and you should configure
{
"env": {
"browser": true
}
}
在 .eslintrc
文件。
也许更简单的方法就是添加此评论:
Maybe an even easier way is just add this comment:
/*eslint-env browser*/
您的代码似乎正在运行。您是否在浏览器控制台中收到该错误?如果不是,它可能只是一个lint错误。
Your code appears to be working. Are you getting that error in the browser console? If not it might just be a lint error.
这将真正有助于粘贴你得到的确切错误信息。
It would really help to paste the exact error message you are getting.
function check_prime() {
var input = document.getElementById('enteredNumber').value;
var number = parseInt(input);
if (isNaN(number)) {
alert('Oops! Please enter a valid number.');
document.getElementById('enteredNumber').value = '';
document.getElementById('answer').innerHTML = '';
document.getElementById('enteredNumber').focus();
} else if (input.length === 0) {
alert('Please enter a valid input');
document.getElementById('enteredNumber').focus();
} else if (!isNaN(number)) {
var divisors = is_perfect(number);
if (divisors) {
document.getElementById('answer').innerHTML =
'Congratulations! ' + number + ' is a perfect number.';
alert(
'Congratulations! ' +
number +
' is a perfect number. The divisors are: ' +
divisors.toString() +
'.'
);
} else {
document.getElementById('answer').innerHTML =
"I'm sorry! " + number + ' is not a perfect number.';
}
} else {
document.getElementById('answer').innerHTML = 'Please enter a number.';
}
}
function is_perfect(number) {
var temp = 0;
var divisors = [];
for (var i = 1; i <= number / 2; i++) {
if (number % i === 0) {
divisors.push(i);
temp += i;
}
}
return temp === number ? divisors : null;
}
function clear_textbox() {
document.getElementById('answer').innerHTML = '';
document.getElementById('enteredNumber').value = '';
document.getElementById('enteredNumber').focus();
}
<h2> PERFECTION </h2>
<h3> PLEASE ENTER A NUMBER: </h3><br>
<div>
<input type="text" id="enteredNumber" autofocus value="" /> <br><br>
<input type="submit" value="Check" title="Perfection" onclick="check_prime()" />
<input type="submit" value="Clear" title="Click here to clear the text box." onclick="clear_textbox()" />
<br><br>
<p id="answer"></p>
</div>
这篇关于文件未定义javascript错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!