0
我是JavaScript新手。我知道这个主题有几个帖子,但我找不到能够解决我的问题的帖子。getElementsByClassName返回undefined
我想更改类别为mainSlides
和dot
的元素的属性。但是当我尝试使用getElementsByClassName
调用这些元素时,它将返回undefined。
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mainSlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
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";
当我在var dots = document ...
滑动插入断点是未定义的。然后我在不确定
slides[slideIndex-1].style.display = "block";
无法读取属性 '风格' 得到一个错误的HTML看起来像这样:
<div class="mainSlides fade"> <div class="numbertext">1/3</div> <img src="images/mainSlide1.jpg" style="width:100%"> <div class="text">Caption Text</div> </div>
和
<div style="text-align:center"> <span class="dot" onclick="currentSlide(1)"></span> <span class="dot" onclick="currentSlide(2)"></span> <span class="dot" onclick="currentSlide(3)"></span> </div>
我m不知道我的问题是在设置课程还是使用
getElementsByClassName
。
如果'slides'是未定义那么你会得到一个错误,试图读'slideIndex-1' o f未定义,而不是未定义的'style'。 – Quentin
看起来'slides.length'是'0','slideIndex-1 === -1'。或者'n === 1'和'slideIndex'没有设置。 – Oriol
只是简单的说明,您可能会遇到代码中的问题,以便删除“活动”类。你应该考虑使用'dots [i] .classList.remove(“active”)'来代替。 –