HTML部分:
<ul id="ul">
<li>hello</li>
<li>yeah</li>
<li>yes</li>
<li>nope</li>
</ul>
JS部分:
var ul = document.getElementById('ul');
var lis = ul.getElementsByTagName('li');
for(var i = 0, len = lis.length; i < len; i++)
{
lis[i].onclick = function(){
***this***.style.fontSize = '30px';
}
}
为什么把this.style.fontSize的this改成lis[i]就没有点击li后字体变大的效果了呢?
这里的this难道不是指的是对象lis[i]吗?
因为
onclick
是一个异步的事件,当事件触发的时候循环已经执行完了,所以这个时候i
已经是lis.length
了,不行你可以打印一下看。你可以通过闭包的方式了解决这个问题