var key = document.getElementsByName("objectKey");//checkbox
var name = document.getElementsByName("objectName");
var userArray = new Array();
var showString="";
for(i = 0;i<key.length;i++){
if(key[i].checked == true){
userArray[i] = key[i].value;
alert("我来了");
showString+= name[i].value+",";
}
}
这段代码错在了那里?语法没错,想法也没错。
到底那里错了呢?
分析: userArray 是一个数组,userArray[i] = key[i].value; //为数组元素赋值,"i" 随着key 循环自加增长,那么如果key.length=3,"i"的最大值等于2,
userArray 数组下标数也就同等于2,这时问题随之也出现了,假如我选中的恰好是第三个checkbox,循环一次,key[i].checked != true ; 循环二次
key[i].checked != true ;循环三次 key[i].checked == true; 进入if 中,这时的“i=2” ,数组的元素也就 0、1、2;错误就在这里。数组应该只被
赋了一次值,元素居然达到了三个? 这就是这段代码的错误。