JavaScript关于数组属性未定义的问题(Cannot read property 'value' of undefined)

在用HBuilder编译app的时候,发现了一个奇怪的问题,for循环调用数组的属性的时候报错属性未定义,下面仔细阐述:

第一次问题

我用一个onmoney获取了input内容

var onmoney = document.getElementsByTagName("input");

然后调用了一个for循环,对其依次赋值

for(var i=0; i<=user.length; i++){
		onmoney[i].value = 0;
	}

这时我发现在调试窗口出现了报错Cannot read property 'value' of undefined

但是依然赋值成功了,所以我没有在意

 

第二次问题

我在一个if语句中遇到了同样的问题

for(var i=0; i<=man.length; i++){
            var k=0;
		if(man[i].checked){
			users[k] = man[i].value;
			k++;
		}
	}

出现报错Cannot read property 'checked' of undefined

这次语句出错了

虽然man[i].vaule还是取得到值,但是users没有被赋值,以及包含这个语句的js函数后面的函数不能调用了

function turngame(){
	getVal();//包含报错if语句的函数
	alert("这个弹窗不会被调用");
}

 

解决方案

在if或for循环括号中添加一个man[i]声明,报错消失。

for(var i=0; i<=user.length && onmoney[i]; i++){
		onmoney[i].value = 0;
	}
if(man[i] && man[i].checked){
			users[k] = man[i].value;
			k++;
		}

原因

未知!!!

希望阅读到这篇文章的大佬能在评论区为我解答一下,定不胜感激

若以后知道原因,也会及时更新。

你可能感兴趣的:(JavaScript关于数组属性未定义的问题(Cannot read property 'value' of undefined))