我有下一个问题: arr 只有两个元素。下一个循环尝试执行他的身体 3 次:
var selectHTML = "";
for (var i = 0; i< arr.length; i++) {
selectHTML += '<option value="' + arr[i].id + '">' + arr[i].name + '</option>';
}
正如我所料,下一个循环只尝试执行他的身体 2 次:
var selectHTML = "";
for (var i = 0; i< arr.length; i++) {
alert(i);
selectHTML += '<option value="' + arr[i].id + '">' + arr[i].name + '</option>';
}
为什么(在 Firefox 14.0.1 中测试)?
更新:对计数器增量后的分号感到抱歉,这是一个错字。但是没有它,代码仍然无法正常工作。
更新:好的,此代码已简化。整个代码本身:
var selectHTML = "";
timeSheet.steps = [ { name:"Leave as is", id:-1}, { name:"Approved", id:2} ];
for (var counter = 0; counter < timeSheet.steps.length; counter++) {
selectHTML += '<option value="' + timeSheet.steps[counter].id + '">' + timeSheet.steps[counter].name + '</option>';
}
在 Firebug 中,我可以看到 timeSheet.steps.length 等于 2。顺便说一句,我没有放置“alert(i)”,而是添加了注释,并且正文执行了 2 次。魔法...