javascript - 无法读取 null 类型的事件侦听器的属性
问题描述
我的 javascript 文件有问题,使用 Visual Studio 代码。我有一个示例 HTML 文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
<p> hello with JSON</p>
<button id="btn">click me!</button>
</body>
</html>
我正在尝试将 eventListener 添加到我添加的按钮
const btn = document.getElementById("btn");
btn.addEventListener("click", getData)
function getData(){
fetch('https://jsonplaceholder.typicode.com/users')
.then((res) => { return res.json() })
.then((data) => {
console.log(data);
});
}
为什么会出现这个问题?
解决方案
如果您不想重构大部分代码,请将defer
关键字添加到脚本标记中,如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js" defer></script>
</head>
<body>
<p> hello with JSON</p>
<button id="btn">click me!</button>
</body>
</html>
推荐阅读
- keycloak - 如何在 keycloak 中为电子邮件添加新的“重置操作”?
- c# - 向 ASP.NET Core 3.1 标准 JSON BadRequest 响应添加详细消息
- html - 添加(单击)方法以链接 Angular 组件中的文本块
- c++ - 证明使用共享对象多次运行的可执行文件工作正常并且使用的内存少于静态链接版本
- node.js - 如何根据猫鼬聚合中的状态对数据进行排序
- python - 在 Django Html 模板中循环范围
- reactjs - 在谷歌搜索控制台中索引时服务工作者注册失败
- python - 计算numpy行行叉积的欧几里得距离?
- php - 如何删除 laravel 集合上的索引以仅作为对象读取?
- python - 如何为特定键值创建新字典?