为什么这样写会报错,把aaa[i]改成this后就正常var aaa = document.getElementsByTagName('button'); for(var i = 0;i<aaa.length;i++){ aaa[i].onclick = function(){ aaa[i].className = 'red'; }
3 回答
已采纳
stone310
TA贡献361条经验 获得超191个赞
之所以找不到aaa[i],因为i的值已经是aaa.length(因为页面加载的时候for循环已经结束,而click事件还未触发,所以这时候click事件里面的i已经是aaa.length);所以aaa[i]属于数组越界,是不存在;而改成aaa[i-1]就能获取最后一个aaa元素;
this指当前调用对象,这里就是指触发click事件的对象
添加回答
举报
0/150
提交
取消