Почему бы просто не использовать this
?
var imgArea = document.getElementById('imageArea');
var nrArray = [1,2,3,4,5,6,7,8];
for (var i = 0; i < nrArray.length; i++) {
var image = document.createElement('img');
image.src = "images/theimage.png";
image.id = nrArray[i];
imgArea.appendChild(image);
image.addEventListener('click', function() {
showId(this.id);
}, false);
}
Кроме того, ваш первоначальный вопрос задавался о создании замыкания , так что, хотя я уверен, что использование this
обеспечит то, чтосейчас вам нужно добавить небольшую демонстрацию создания новой области, которая позволит вам воспользоваться закрытием для выполнения той же задачи:
var imgArea = document.getElementById("imageArea");
var nrArray = [1, 2, 3, 4, 5, 6, 7, 8];
for (var i = 0; i < nrArray.length; i++) {
createClosure(i);
}
function createClosure(i) {
var image = document.createElement('img');
image.src = "images/theimage.png";
image.id = nrArray[i];
imgArea.appendChild(image);
image.addEventListener('click', function () {
showId(image.id);
}, false);
}
jsFiddle demo: http://jsfiddle.net/HMYsW/1/