2012-11-26 82 views
0
var toBeHidden_letter = document.getElementsByClassName('doc_direction'); 
for(var i = 0; i < 10; i++) { 
    toBeHidden_letter[i].style.display = 'block'; 
    alert('i = '+i); 
} 

我只有2個提醒。爲什麼?JavaScript for loop運行只有兩次

編輯:我在我的HTML中有10個class ='doc_direction'的元素。

+1

顯示你的HTML。我的猜測是你只有兩個與班級相匹配的元素。之後,javascript返回一個引用錯誤 – Curt

+0

你確定你有10個元素的類爲「doc_direction」嗎?如果只有2個,則for循環將運行兩次,然後失敗,因爲toBeHidden_​​letter中沒有第三個索引。 – looper

+0

打開您的JavaScript控制檯,檢查是否有任何錯誤。我懷疑'getElementsByClassName'只返回2個元素,所以你的循環會在第三次迭代時出錯...... –

回答

4

我想你需要:

var toBeHidden_letter = document.getElementsByClassName('doc_direction'); 
for(var i = 0; i < toBeHidden_letter.length; i++) { 
    toBeHidden_letter[i].style.display = 'block'; 
    alert('i = '+i); 
} 
1

看來你有.doc_direction類名只有兩個元素和JS導致錯誤,您可以檢查控制檯中的錯誤,並提供一些HTML?

BTW更好的是讓元素,而不是硬編碼的10號的長度:

for(var i = 0; i < toBeHidden_letter.length; i++) {