Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自w3学校的幻灯片放映_Javascript_Html_Css - Fatal编程技术网

Javascript 来自w3学校的幻灯片放映

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

我有一个关于我为一项任务制作幻灯片的问题。我的调试技能不是最好的,因为我对HTML和JS还不熟悉。我的问题来自于从我的幻灯片中的一行中得到一个typeError。问题出在这里的这个街区:

 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";
}