[英]OOO javascript: object self reference returns undefined but console shows it exists
[英]Object reference undefined in code, but not in console
当我将其放在我的app.js
:
var titres = document.querySelectorAll('header ul li a')
console.log(titres)
它发回给我: []
如果我将其放在浏览器的控制台中:
var titres = document.querySelectorAll('header ul li a')
titres
寄给我这个: [a,a,a,a,a]
有人知道为什么吗?
当您在控制台中键入这些语句时,页面已被完全解析,因此找到了元素,并返回了一个“类似数组的”对象,其中包含对这些元素的引用。
但是,最有可能的是,当您使用app.js
的代码进行尝试时,将在将整个HTML页面解析到内存之前执行app.js
文件,如下所示:
<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- At this point, the rest of the HTML hasn't been parsed yet, so
if app.js tries to query for those elements, they won't be found! -->
<script src="app.js"></script>
</head>
<body>
. . .
尝试将<script src="app.js"></script>
代码放在body
元素关闭之前(这样它就可以在HTML解析之后运行),如下所示:
. . .
<script src="app.js"></script>
</body>
</html>
或将script
标记保留在页面顶部,但在app.js
文件中,将代码包装在事件处理程序中,如下所示:
window.addEventListener("DOMContentLoaded", function(){
var titres = document.querySelectorAll('header ul li a')
console.log(titres)
});
这将延迟代码的执行,直到HTML加载之后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.