在闭包中访问循环变量

时间:2014-10-26 19:35:59

标签: javascript closures

我正在处理一项任务,要求我创建一个脚本,该脚本以某种方式使用闭包来提醒HTML集合中元素的索引。它还要求我使用嵌套循环来迭代父元素及其子元素。我几乎所有工作都有效,但我认为我还没有完全理解如何在这里使用闭包来满足分配要求。

http://jsfiddle.net/mcasavant/99b8g2xz/

<div class="disableLinks">
  <a href="http://www.google.com">Link 1</a>
  <a href="http://www.google.com">Link 2</a>
</div>

<div class="disableLinks">
  <a href="http://www.google.com">Link 3</a>
  <a href="http://www.google.com">Link 4</a>
</div>

var disableLinks = document.getElementsByClassName('disableLinks');

for(var i = 0; i < disableLinks.length; i++){
    var links = disableLinks[i].getElementsByTagName('a');
    for(var j = 0; j < links.length; j++){
        links[j].addEventListener('click', function(e){
            alert('You clicked on link index ' + j + 'of div index ' + i);   
        }, false);
    }
}

点击链接3会使警告框显示如下内容:

&#34;您点击了div index 1&#34;

的链接索引0

0 个答案:

没有答案