如何解决为什么我会收到此错误,我不知道为什么? sketch.js:18未捕获的TypeError:无法在sketch.js:18处读取null的属性'addEventListener'
我从控制台收到此错误。
sketch.js:18未捕获的TypeError:无法读取null的属性'addEventListener' 在sketch.js:18
我不知道为什么吗?
这是我的HTML代码。
<!DOCTYPE html>
<html>
<head>
<script src="js/p5.js"></script>
<script src="js/p5.dom.min.js"></script>
<script src="js/p5.sound.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script src="sketch.js"></script>
<link rel="stylesheet" type="text/css" href="css/stylegenerator.css">
<meta charset="utf-8">
</head>
<body>
<div>
<button>Random</button>
<h1>Result</h1>
</div>
</body>
</html>
这是我的JavaScript代码。
var txt;
let btnRandom = document.querySelector('button');
let result = document.querySelector('h1')
function preload() {
txt = loadStrings("license.txt");
}
function getRandomNumber(min,max){
let step1 = max - min +1;
let step2 = Math.random() * step1;
let result = Math.floor(step2) + min;
return result;
}
btnRandom.addEventListener('click',() => {
let index = getRandomNumber(0,txt.length-1);
result.innerText = txt[index];
})
function setup(){
noCanvas();
}
请帮助我。我不知道如何解决此错误。
我正在使用Visual Studio代码和p5.js。
谢谢!
解决方法
您正在尝试访问在Javascript之后启动的元素。您可以通过在要选择的HTML元素之后加载js文件来解决此问题:
<!DOCTYPE html>
<html>
<head>
<script src="js/p5.js"></script>
<script src="js/p5.dom.min.js"></script>
<script src="js/p5.sound.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/stylegenerator.css">
<meta charset="utf-8">
</head>
<body>
<div>
<button>Random</button>
<h1>Result</h1>
</div>
<script src="sketch.js"></script>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。