在匿名函数中 aDiv[i].style.background="red"; //为什么不能这样写呢?

<!doctype html>

<html>

<head>

<title>运动</title>

<meta charset="utf-8">

<style>

.div1{width:100px;height:100px;float:left;background:#ccc;margin:5px;}

</style>

<script>

window.onload=function()

{

    aDiv=document.getElementsByClassName('div1');   

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

    {

aDiv[i].onclick=function(){

this.style.background="red";

// aDiv[i].style.background="red";    //为什么不能这样写呢?

}   

    }   

}

</script>

</head>

<body>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

<div class="div1"></div>

</body>

</html>



09卖一品牛肉粒
浏览 877回答 1
1回答

HalfAnHour

作用域在作怪。匿名函数中的aDiv[i]是undefined的,不在同一个作用域当中。
打开App,查看更多内容
随时随地看视频慕课网APP