Create a closure via a self-executing function literal (or a named factory function)
function doTask(x) { alert(x); }
for(var i = 100; i--;) {
document.getElementById('divNum' + i).onclick = (function(i) {
return function() { doTask(i); };
})(i);
}
or use the DOM node for information storage
function doTask() { alert(this.x); }
for(var i = 100; i--;) {
var node = document.getElementById('divNum' + i);
node.x = i;
node.onclick = doTask;
}
The latter is more memory-friendly as no superfluous function objects are created.