【问题标题】:How to pass loop variable to elements [duplicate]如何将循环变量传递给元素[重复]
【发布时间】:2014-12-19 05:39:15
【问题描述】:

谁能告诉我如何正确获取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;
    }
  }

【问题讨论】:

  • 这有无数个重复(我会尝试找到一个)。 i 已经在 for 循环中运行,因此它将始终处于结束值,因为稍后会调用单击处理程序。您必须将i 放入闭包中。

标签: javascript


【解决方案1】:
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;
    }
  }

【讨论】:

  • 感谢您向我展示了如何做到这一点,而不是按照本网站通常的 dingbats 的做法:将问题标记为重复,将问题标记为离题,开始讨论如何使用网站等(你知道:小人负责)。相反,你解决了我的问题,你教会了我一些东西,你对我很有用,我非常感激。
  • @Verhaeren:你读过副本吗?这就是它的用途。
  • 我做到了,它也被标记为重复。无论如何,有几个类似问题的事实对我来说意味着有人在谷歌上搜索关于该特定问题的答案,将会有更多的结果来找到他正在寻找的东西。祝你有美好的一天。
猜你喜欢
  • 2019-11-29
  • 2019-03-11
  • 2013-10-25
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
相关资源
最近更新 更多