老师,有个疑问
来源:4-7 完善测试工具
慕盖茨9092533
2019-12-01 21:37:02
老师 ,最后的点击事件,
for(var i=0;i<reglists.length;i++){
reglists[i].onclick = function(){
userRegExp.value = this.title;
}
}
为什么userRegExp.value = this.title;可以,把this改成reglists[i]就报错了,打印reglists[i]它也是undefined
1回答
同学你好,问题解答如下:
1、this指向当前绑定点击事件的元素,所以你点击哪个元素(reglists),this就指向哪个,相应的this.title属性也就可以获取到。
2、如果将this换成reglists[i],可以看一下执行顺序。for循环是先执行完毕的,给每个reglists元素绑定上了点击事件,当点击元素的时候,使用到了i值,当前作用域中没有i值,就会沿着作用域向上找,找到的就是循环完的i值,也就是reglists.length,而reglists[reglists.length]的元素是不存在的,所以打印打印reglists[i]值是undefined 。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题