【发布时间】:2011-09-19 22:36:35
【问题描述】:
可能重复:
Javascript closure inside loops - simple practical example
我(很明显)是 javascript 的初学者。我试图理解为什么,当使用 for 循环并调用事件处理程序ala
var nav = document.getElementById('nav');
var navLinks = nav.getElementsByTagName('a');
var content = document.getElementById('content');
var contentSections = content.getElementsByTagName('div');
for(i =0; i < contentSections.length; i++) {
contentSections[i].style.display = 'none';
}
for(i =0; i < navLinks.length; i++) {
navLinks[i].onmouseover = function() {
contentSections[i-1].style.display = 'block'
}
}
我只得到循环的最后一次迭代。当鼠标悬停在 navLinks 数组中的每个链接上时,我将如何调用函数对它们进行操作?
这方面有很多问题,但很多时候它们太复杂了,我无法理解。
【问题讨论】:
-
答案很简单:
for循环中没有作用域;) -
@FelixKling:等等,这已经被问过了?! :p
标签: javascript for-loop