javascript错误信息是为空或不是对象是怎么回事?

2024-12-15 23:23:39
推荐回答(5个)
回答1:

把oImg[i]改为this,oImg[i]是img对象其中一个属性。另外,函数花括号结尾没有分号

回答2:

oDiv[i].onclick=function()作为一个新的function函数,怎么还能延续用函数以外的变量和数值呢,函数内应该用新的变量,新的调用阿

回答3:

写成这样
oDiv[i].onclick = (function(img){
return function(){
img.style.display= "block";
}
})(oImg[i]);

回答4:

oImg[i].style.display='block' 改成
this.style.display='block'

回答5:

假如你有3个Div, 3个Img
你for循环结束,onclick都加上之后
i=3
当执行onclick的function的时候i=3
oImg[3] = undefined
所以报错了!

解决方案:
window.onload = function(){
var oDiv = document.getElementsByTagName('div');
var oImg = document.getElementsByTagName('img');
var imgClickHandler = function(i){oImg[i].style.display = 'block';}
var _imgClickHandler = function(i){return function(){
imgClickHandler.call(null, i);
}}
for(var i=0;i oDiv[i].onClick = _imgClickHandler.call(null, i);
}
}