为了账号安全,请及时绑定邮箱和手机立即绑定

为什么arr[i].style.width=300+"px";中浏览器会Uncaught TypeError: Cannot read property 'style' of undefined

var arr=document.getElementsByTagName("li");

for(var i=0;i<arr.length;i++){

arr[i].onclick=function(){

setInterval(function(){

arr[i].style.width=300+"px";

},300);

}

}


正在回答

4 回答

http://bbs.csdn.net/topics/340176862

0 回复 有任何疑惑可以回复我~

试一下这个

0 回复 有任何疑惑可以回复我~


var arr=document.getElementsByTagName("li");
for(var i=0;i<arr.length;i++){
    arr[i].id = i;
    arr[i].onclick=function(){
    setInterval(function(){
    arr[this.id].style.width=300+"px";
},300);
}
}


0 回复 有任何疑惑可以回复我~

因为i此时是arr.length,这里是闭包的问题。

var arr=document.getElementsByTagName("li");
for(var i=0;i<arr.length;i++){
arr[i].onclick=function(a){
setInterval(function(){
arr[a].style.width=300+"px";
},300);
}(i);
}


0 回复 有任何疑惑可以回复我~
#1

东边天上的云 提问者

括号里面的a和最后面的(i)是怎么理解的啊?麻烦给一下解答
2015-07-08 回复 有任何疑惑可以回复我~
#2

arlenhui 回复 东边天上的云 提问者

a是传参,i是实参
2015-07-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么arr[i].style.width=300+"px";中浏览器会Uncaught TypeError: Cannot read property 'style' of undefined

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信