2017-04-20 56 views
0

我目前正在學習javascript,所以如果我的問題確實很愚蠢,請提前抱歉。這個函數背後的主要思想是獲取用戶點擊的div的值。但是,我不知道爲什麼,但無論您單擊哪個類,都需要最後一個div的值。如果有人能解釋我做錯了什麼,我將非常感激。點擊獲取不同類別的值

最好的問候, 喬治

var Get_Class = document.getElementsByClassName("Letter"); 
 

 
for (i = 0; i < Get_Class.length; i++){ 
 
    var Letter = Get_Class[i]; 
 
    Letter.onclick = function(){ 
 
     console.log(Letter.innerHTML); 
 
    } 
 
}
<div class="Letter">A</div> 
 
<div class="Letter">B</div> 
 
<div class="Letter">C</div> 
 
<div class="Letter">D</div> 
 
<div class="Letter">E</div>

回答

1

包裹loop正文IIFE立即可調用函數表達式來創建不同的範圍。

var Get_Class = document.getElementsByClassName("Letter"); 
 

 
for (var i = 0; i < Get_Class.length; i++){ 
 
    (function(j){var Letter = Get_Class[j]; 
 
    Letter.onclick = function(){ 
 
    console.log(Letter.innerHTML); 
 
    } 
 
    })(i); 
 
}
<div class="Letter">A</div> 
 
<div class="Letter">B</div> 
 
<div class="Letter">C</div> 
 
<div class="Letter">D</div> 
 
<div class="Letter">E</div>

+0

一個好的答案應該解釋爲什麼OP都有自己的問題,以及如何你的答案修復它。這是在其他問題的答案中已經很好地覆蓋的重複。 – RobG

2

除非你要使用閉合,所以i是不以點擊發生的時間循環的結束,改變

console.log(Letter.innerHTML); 

console.log(this.innerHTML);