Javascript控制台:未捕获类型错误:无法读取属性';风格';在displaynone处为null
我正在编写一个简单的javascript滑块,它应该显示一张幻灯片,然后在5秒后显示:该幻灯片无,然后显示下一张幻灯片。我收到控制台错误“UncaughtTypeError:无法在displaynone读取null的属性'style'。下面是slider7.js的内容:Javascript控制台:未捕获类型错误:无法读取属性';风格';在displaynone处为null,javascript,null,Javascript,Null,我正在编写一个简单的javascript滑块,它应该显示一张幻灯片,然后在5秒后显示:该幻灯片无,然后显示下一张幻灯片。我收到控制台错误“UncaughtTypeError:无法在displaynone读取null的属性'style'。下面是slider7.js的内容: window.onload = function () { var imgid = []; var numberOfSlides = document.getElementById("slide-container").ch
window.onload = function () {
var imgid = [];
var numberOfSlides = document.getElementById("slide-container").childElementCount;
console.log("total slide count is: " + numberOfSlides);
for (i = 1; i <= numberOfSlides; i++) {
console.log("here's the value of i: " + i);
imgid.push("img-" + i);
}
console.log("The full contents of the array are " + imgid);
function displaynone() {
document.getElementById(imgid[j]).style.display = "none";
}
for (j = 0; j < numberOfSlides; j++) {
console.log("identify each image id in turn: " + imgid[j]);
document.getElementById(imgid[j]).style.display = "block";
window.setTimeout(displaynone, 5000);
}
};
观察到以下代码行仅在包装到window.setTimeout函数时生成控制台错误:
document.getElementById(imgid[j]).style.display = "none";
如果我从函数中删除这一行,并简单地将其放在包含“display=“block”的行下面,它会将内联显示设置为none,但不会有任何时间延迟。谢谢你的见解 只需检查变量j 它在displaynone函数中未定义。 使用闭包 +增加
或者,您可以将变量j声明为全局变量,而无需使用windows.onload。请尝试以这种方式执行js函数
<body onload="your function">
使用css隐藏初始阶段的所有图像
document.getElementById(imgid[j]).style.display = "none";
<body onload="your function">