老师,有个疑问

来源: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回答

好帮手慕星星

2019-12-02

同学你好,问题解答如下:

1、this指向当前绑定点击事件的元素,所以你点击哪个元素(reglists),this就指向哪个,相应的this.title属性也就可以获取到。

2、如果将this换成reglists[i],可以看一下执行顺序。for循环是先执行完毕的,给每个reglists元素绑定上了点击事件,当点击元素的时候,使用到了i值,当前作用域中没有i值,就会沿着作用域向上找,找到的就是循环完的i值,也就是reglists.length,而reglists[reglists.length]的元素是不存在的,所以打印打印reglists[i]值是undefined 。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 4826 问题

查看课程