我有一个带有if语句的Javascript函数;变量col和top作为参数传递给函数:
if (col == 'persact') {
for (j = 1; j <= top; j++) {
var coluid = "xx_" + j;
var colu = document.getElementById(coluid).value;
var colidj = "x_" + j;
if (colu == "PersActNumOrd") {
var numordid = colidj;
var numord = document.getElementById(numordid).value;
}
if (colu == "PersActUnitChg") {
var unitchgid = colidj;
var unitchg = document.getElementById(unitchgid).value;
}
if (colu == "PersActExt") {
var extid = colidj;
var extold = document.getElementById(extid).value;
}...similar stuff...
} //j loop
} //persact if
对于col!=&#39; persact&#39;的情况,正确调用了该函数。该函数运行正常,但我从firebug得到了一个错误:
TypeError:document.getElementById(...)为null
document.getElementById(extid).value = exten
嗯,当然是空的。这就是它在条件块中的原因。有人可以解释为什么在if条件为false并且该代码块不应该运行时检测到错误。这只是萤火虫是愚蠢的,还是有更深层次的解释与javascript的运作方式有关?
这里的另一个谜是错误是针对&#34; extid&#34;但前两个(以及几个后面的document.getElementById语句,也应该是null,不会产生错误。