2014-12-19 47 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

相关问题