2014-12-19 64 views
0

有人可以告訴我怎樣才能正確抓取i?現在,它只是顯示相同數量(a.length任何錨元素上點擊時的價值。如何將循環變量傳遞給元素

var a = document.getElementsByTagName('a'); 
    for (i = 0, j = a.length; i< j;i++) { 
    a[i].onclick = function() { 
     console.log(i); //display a.length in all anchors 
     return false; 
    } 
    } 
+0

這方面有數不勝數的DUP(我將嘗試找到一個)。'i'有在'for'循環中運行它,所以它總是處於結束值,因爲點擊處理程序有時會被調用,你必須把'i'放在一個閉包中。 – jfriend00 2014-12-19 05:47:10

回答

2
var a = document.getElementsByTagName('a'); 
    for (i = 0, j = a.length; i< j;i++) { 
    a[i].idx = i; 
    a[i].onclick = function() { 
     console.log(this.idx); 
     return false; 
    } 
    } 
+2

Thankyou向我展示如何去做,而不是做一下本網站常用的小動作:將問題標記爲重複,將問題標記爲脫離主題,開始討論如何使用網站等(您知道:小負責人),而不是,你解決了我的問題,你教了我一些東西,喲你對我有用,我非常感激。 – Verhaeren 2014-12-19 05:53:29

+0

@Verhaeren:雖然你看過重複嗎?這就是它的目的。 – Ryan 2014-12-19 06:01:57

+0

我做到了,它也被標記爲重複。無論如何,有幾個類似的問題對我來說意味着有人搜索有關該特定問題的答案,將有更多的結果找到他要找的東西。祝你有美好的一天。 – Verhaeren 2014-12-19 06:05:05