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]的,同学可以自己试下哦

祝学习愉快~
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星