【发布时间】:2013-01-30 06:33:11
【问题描述】:
我得到了一个包含 8x10 单元格的表格.. 每个销售都有一个具有自己 id 的输入元素 (11, 12, ... , 21,22,23,...) 现在我想在之后填充这些输入(比如说 0.5 秒) 我刚刚输入了一些值进行测试
Betrag = new Array();
Betrag[0] = new Array();
Betrag[1] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","513.000,00");
Betrag[2] = new Array("asd","adsd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[3] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[4] = new Array("asd","uisgui","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[5] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[6] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[7] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
Betrag[8] = new Array("asd","asd","asd","asd","asd","asd","asd","asd","asd","asd","asd");
for(i=1; i<=8; i++){
for(k=1; k<=10; k++){
setTimeout(function schreiben(){document.getElementById(''+i+k+'').value= Betrag[i][k];}, 1000);
//document.getElementById(''+i+k+'').value= Betrag[i][k];
}
}
编译器说“TypeError: Cannot read property '11' of undefined”
如果我不使用 settimeout() 函数,整个循环工作正常,但是使用这个函数我得到了这个错误..
【问题讨论】:
-
您是否尝试过提醒 Betrag[1][1] 看看它返回了什么?
-
当我运行它时,
i变为 9,k变为 11。可能是线程问题。 -
setTimeout(function schreiben(){alert(Betrag[1][1])}, 1000);工作正常(好吧,它是一个无限循环^^)在警报窗口中获得“asd”
-
你想同时填充所有输入,还是一个接一个(它们之间有延迟)?
-
请参阅 this answer 了解为什么会发生这种情况以及如何解决它。
标签: javascript arrays loops multidimensional-array settimeout