【问题标题】:TypeError: slides[(slideIndex - 1)] is undefined类型错误:slides[(slideIndex - 1)] 未定义
【发布时间】:2017-03-14 20:17:14
【问题描述】:

我有一个关于我正在为某项作业制作的幻灯片放映的问题。我的调试技能不是最好的,因为我是 HTML 和 JS 的新手。我的问题来自从我的幻灯片 JS 中的一行获取 typeError 。问题出在这块这里:

var slideIndex = 0;
showSlides();

function showSlides() {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none";
  }
  slideIndex++;
  if (slideIndex > slides.length) {
    slideIndex = 1
  }
  slides[slideIndex - 1].style.display = "block";
  setTimeout(showSlides, 4000);
}

我的 HTML 是:

    <img class="mySlides" src="http://www.kitchenaid.com/images/global/masthead-major-appliances.jpg">
<img class="mySlides" src="http://www.depotkitchen.com/wp-content/uploads/2015/05/kitchen-aid-appliances-1.jpg">
<img class="mySlides" src="http://washburns.com/media/k2/galleries/11/stainlesssteelkitchen2.jpg">
<img class="mySlides" src="https://www.appliancedepot.com/media/R37672.jpg">

问题在于slides[slideIndex-1].style.display = "block"; 这行我收到了错误:

TypeError: slides[{slideIndex-1)] 未定义。

有人知道这个问题的解决方案吗?感谢您的帮助!

调试页面报错截图如下:

Debugging page and error show cased

【问题讨论】:

  • 如果没有该类的元素slides[0] 将没有style 属性。您确定该类中确实存在元素吗?
  • 你能确认 slides 数组中至少有一项吗?
  • 我认为您的问题是 mySlides 图像元素在脚本运行时未加载到页面上。等待页面加载或将脚本放在页面底部。
  • 将其放置在页面底部可确保在 JS 执行之前加载所有 HTML,如果您使用的是 JQuery(如您已标记问题)你可以把它放在头上,把你的代码包装在$(document).ready(function(){ //Code here })中以达到同样的效果。
  • 嗯,这更有意义,我会更加仔细地分析脚本的放置位置。感谢大家的帮助!

标签: javascript jquery html typeerror


【解决方案1】:

我遇到了同样的问题。 在滑块和问题解决后加载 js 文件。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我发现带有“点”类的 标签被删除了,所以我添加了   标签之间,我的问题解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 2019-10-31
      • 2016-08-07
      • 2019-01-07
      • 2020-01-28
      • 2021-10-24
      • 2014-10-17
      相关资源
      最近更新 更多