Javascript 来自w3学校的幻灯片放映
我有一个关于我为一项任务制作幻灯片的问题。我的调试技能不是最好的,因为我对HTML和JS还不熟悉。我的问题来自于从我的幻灯片中的一行中得到一个typeError。问题出在这里的这个街区:Javascript 来自w3学校的幻灯片放映,javascript,html,css,Javascript,Html,Css,我有一个关于我为一项任务制作幻灯片的问题。我的调试技能不是最好的,因为我对HTML和JS还不熟悉。我的问题来自于从我的幻灯片中的一行中得到一个typeError。问题出在这里的这个街区: var slideIndex = 1; showSlides(slideIndex); function plusSlides(n) { showSlides(slideIndex += n); } function currentSlide(n) { showSlides(slide
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
if (n > slides.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = slides.length
}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slideIndex-1].style.display = "block";
}
错误所指的行假定
幻灯片中至少有一张幻灯片,但根本不可能有幻灯片,而且调用函数时显然没有幻灯片
如果没有幻灯片,您可以提前退出该功能:
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
if (!slides.length) { // ***
return; // ***
} // ***
if (n > slides.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = slides.length
}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slideIndex-1].style.display = "block";
}
功能演示幻灯片(n){
var i;
var slides=document.getElementsByClassName(“mySlides”);
如果(!slides.length){//***
返回;//***
} // ***
如果(n>幻灯片长度){
slideIndex=1
}
if(n<1){
slideIndex=slides.length
}
对于(i=0;i
至于为什么没有幻灯片,我的猜测是您运行这段代码太早了。请参阅的答案,以了解您可能看不到任何匹配元素的原因。哪一行,请发布您得到的确切错误?欢迎使用堆栈溢出!请拿着(你得到了一个徽章!),四处看看,仔细阅读,特别是我还推荐乔恩·斯基特的。无论何时询问错误消息,都要在问题中逐字引用错误消息(使用复制粘贴,而不是重新键入)。由于错误消息将引用行号,请告诉我们它引用的是代码中的哪一行。错误出现在“幻灯片[slideIndex-1]”中。style.display=“block”;(index):284未捕获类型错误:无法读取ShowSlide中未定义的属性“style”。请使用有关问题的编辑链接向其添加信息,不是评论。既然你说你是新手,我强烈建议你不要使用那种令人振奋的风格。它很难阅读,也很难维护。我建议您使用其中一种标准样式。到目前为止,最受欢迎的是一个令人讨厌的名字。如果这个答案是你想要的,那么你应该接受这个答案,@ShrenikSheth。
slides[slideIndex-1].style.display = "block";
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
if (!slides.length) { // ***
return; // ***
} // ***
if (n > slides.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = slides.length
}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slideIndex-1].style.display = "block";
}