<body>
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
<script>
var lis = document.querySelectorAll("ul li");
for(var i = 0,len = lis.length; i < len; i++){
lis[i].addEventListener('click',function(){
console.log(i);
},false);
}
</script>
</body>
js的块级作用域问题,在你点击时,for已经完成循环,此时i为3
1.var 改成let
2.加个闭包
3.给每个 lis[i]一个自定义属性把i暂存起来