我動態地插入一些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