错误记载

 

		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;错误就在这里。数组应该只被

赋了一次值,元素居然达到了三个?  这就是这段代码的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值