Я изучал слайд-шоу в w3schools, чтобы научиться создавать свои собственные.
Это ссылка на код руководства . Однако я имею в виду этот код.
<script>
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides =
document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace("
active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
setTimeout(showSlides, 2000); // Change image every
2 seconds
}
</script>
Я хотел сделать несколько слайд-шоу для одной страницы, поэтому я сделал так, чтобы этот раздел кода принимал параметр, а затем я мог просто вставить свой список изображений. Но когда я изменил код на этот ...
var images = document.getElementsByClassName("mySlides");
var imageNum = document.getElementsByClassName("dot");
showSlides(images, imageNum);
function showSlides(slides, dots) {
var i;
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
setTimeout(showSlides, 2000);
}
Полный код доступен по этой ссылке.
Это дает мне свойство error длины undefined, хотя .length можно использовать в HTML-коллекции.
Почему кажется, что эта функция не может принимать HTML-коллекцию в качестве параметра?
Редактировать: Посмотрев на отзывы и заметив, что людям стало сложнее помогать мне, я создал коды и поле , связывающие с моей проблемой. Я включил решение в качестве комментария, чтобы люди могли видеть до и после. Я также включил всю функцию выше.
Спасибо за ваш отзыв, чтобы я мог сделать вопросы более понятными и извините за проблемы!