我动态地插入一些HTML到文档中(通过使用obj.innerHTML + ='一些HTML')。在那个html中,有一些图像带有'imageId_X'ids(即imageId_1,imageId_2 ...)。这工作得很好,但有什么毛病下面的代码:奇怪的JavaScript问题
for (var n = 0; n < pConfig.images.length; n++)
{
document.getElementById('imageId_' + n).onclick = function()
{
alert(n);
}
}
有4种元素在pConfig.images和警报(N)总是提醒4.为什么会出现这种情况,我在做什么错?
除了闭包循环问题:**不要**使用'innerHTML + ='。这包括将元素的现有DOM内容串行化为HTML字符串,添加到字符串中,然后将所有内容解析为新的DOM对象。这很慢,会丢失流程中的任何不可序列化的信息,包括任何表单字段值,JavaScript引用或事件处理程序。 – bobince 2010-08-19 08:18:14