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」)'來代替。 –