为多个创建的元素创建函数

top*_*erg 0 html javascript

我创造了以下小提琴:

http://jsfiddle.net/cgoddard/eceGc/1/

我想知道需要做什么,以便三个创建链接中的每一个都会提醒一个数字(即当时的数字i).

fca*_*ran 5

看到更新的小提琴:http://jsfiddle.net/eceGc/2/

var selectorObject = document.getElementById('selector');
for (var i = 0; i < 3; i++) {
   (function(i) {
       /* all code here */
   }(i));
}
Run Code Online (Sandbox Code Playgroud)

只需将循环体包装成一个闭包(一个自执行的匿名函数),将当前值i作为参数传递.

您的代码出现问题的原因是,当触发click事件时,值i已达到循环内的限制,因此您正在读取该值.


避免这种行为的另一种方法是通常在函数中移动循环内的所有代码,然后在循环内调用该函数(总是将i变量作为参数传递)