在addEventListener JavaScript中定义的变量
我在下面的代码在我的JS scirpt的开始。 当我尝试在该代码下面打印任何定义的变量时,控制台说变量没有被定义。 你能告诉我为什么吗? 也许我应该先打电话给功能? 当我在下面定义变量并将其打印到控制台时,它可以正常工作。
代码如下:
document.addEventListener("DOMContentLoaded", function(){
var homeElement = document.getElementById("home");
var childElements = document.querySelector(".oferts").children;
var banner = document.querySelector(".ban");
var blocks = document.querySelectorAll(".block");
var links = document.querySelector(".links").children;
});
console.log(homeElement); //Here I got info that this variable is not defined
在此先感谢您的帮助!
你的变量是在本地定义的,不能在函数之外访问。
您可以删除var
关键字以使变量成为全局变量,并且您可以在脚本的任何位置调用该变量。
阅读JavaScript范围
Javascript本地和全局变量混淆
揭秘JavaScript变量范围和提升
JavaScript范围
尝试在函数内部记录你的变量
document.addEventListener("DOMContentLoaded", function(){
var homeElement = document.getElementById("home");
var childElements = document.querySelector(".oferts").children;
var banner = document.querySelector(".ban");
var blocks = document.querySelectorAll(".block");
var links = document.querySelector(".links").children;
console.log(homeElement);// <--
});
您的问题发生在homeElement
未在外部作用域中定义。
这是因为变量是在事件侦听器函数的范围内创建的,而console.log是在全局范围内执行的。 全局作用域不能访问变量作用域。
您可以将console.log移动到函数中,也可以在函数之外声明变量。
链接地址: http://www.djcxy.com/p/51669.html