请写出如下点击li
的输出值,并用多种方法正确输出li里的数字
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
var list_li = document.getElementsByTagName("li");
for(var i=0;i<list_li.length;i++){
list_li[i].onclick = function(){
console.log(i)
}
}
</script>
for(var i=0;i<list_li.length;i++){
list_li[i].addEventListener(
'click',
(function(i){
return function(){alert(i+1);}
})(i)
)
}
- 块级作用域和函数级作用域,ES5没有块级作用域,只有全局作用域和函数作用域,全局作用域就是最外层的作用域,可以用ES6的
let
解决问题
for(let i=0;i<list_li.length;i++){
list_li[i].onclick=function(){
console.log(i);
}
}
for(var i=0;i<list_li.length;i++){
list_li[i].i = i;
list_li[i].onclick = function(){
console.log(this.i+1);
}
}
网友评论