javascript - 有没有办法使用 Javascript 显示此幻灯片上的最后一张图片?
问题描述
到目前为止,我的代码循环了 3/4 或 2/3 个项目。这些项目在一个数组中。最后一张图片显示:“未捕获的 TypeError:无法读取 HTMLElement 处未定义的属性 'classList'”。显示图片和关闭图片有两个类:分别为“on”和“off”。HTML 代码:
<div class="first off">
<img src="https://c.tadst.com/gfx/750w/sunrise-sunset-sun-calculator.jpg?1" alt=""/>
</div>
<div class="second off">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSvLhLs2n6RpRIksOmhqH40yt88fgGcAC6uGlWENi3_WGWfXeoa&usqp=CAU" alt=""/>
</div>
<div class="thrird off">
<img src="https://images.unsplash.com/photo-1512149448423-de868c37fbab?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt=""/>
</div>
<div class="last off">
<img src="https://c.tadst.com/gfx/750w/sunrise-sunset-sun-calculator.jpg?1" alt="">
</div>
</section>
Javascript 代码:
var index = 0
arrow.addEventListener("click", ()=>{
var divs = document.querySelectorAll("div");
var slide = divs[index]
index++
if (index >= divs.length) {
index = 0
for (let i = 0; i <= divs.length; i++) {
divs[i].classList.replace("on", "off")
}
}
slide.classList.replace("off", "on")
log(index + slide)
})
注意:我确实看过一些类似于这个问题(?)的问题,但它们是在 JQuery 中
谢谢您的帮助!
解决方案
由于数组索引从零开始,您的for
循环应该是:
for (let i = 0; i < divs.length; i++) {
...
}
推荐阅读
- ffmpeg - 应该如何开始使用 ffmpeg 的 API?
- java - 在网格布局中动态添加视图不采用指定的大小
- php - 无法在 codeigniter 中显示自己的错误消息
- r - R - 引用替换
- laravel - Laravel 父模型删除不会触发子模型删除事件
- python - 在 Python 命令行中滚动文本
- indexing - 如何在 Solr 中对文件(不在 HDFS 上)进行并行索引?
- java - 如何将 if/else if 代码中的整数转换为该代码外部的整数?(爪哇)
- java - 如何在 Netbeans 的 java 文件中为每个类创建单独的文件
- swift - swift中的XML解析:没有描述解析器错误