DOM&BOM中,换肤案例代码第一段为什么不能写为this,第二段为什么不能写为lis[i]?
第一段:
<script>
// 1.获取导航栏div对象
var nav=document.querySelector('#header');
// 2.获取所有所有的li标签
var lis=document.querySelectorAll('li');
// 3.循环为每个li上绑定点击事件
for(var i=0;i<lis.length;i++){
lis[i].onclick=function(){ //这里为什么不能写this?
// 获取当前li的背景色,在设置给nav导航栏
var bgc=this.style.backgroundColor;
nav.style.backgroundColor=bgc;
}
}
</script>
第二段:
<script>
// 1.获取导航栏div对象
var nav=document.querySelector('#header');
// 2.获取所有所有的li标签
var lis=document.querySelectorAll('li');
// 3.循环为每个li上绑定点击事件
for(var i=0;i<lis.length;i++){
lis[i].onclick=function(){
// 获取当前li的背景色,在设置给nav导航栏
var bgc=this.style.backgroundColor; //这里为什么不能写lis[i]?
nav.style.backgroundColor=bgc;
}
}
</script>
正在回答
同学你好
1、this指的是当前对象,而此处的当前对象指的是当前的全局对象 Window,所以此处不能使用this
2、该处是可以写成lis[i]的,这里的this指的就是lis[i],所以是可以写成lis[i]的,同学可以自己试下哦
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星