<ul>
<li> s1</li>
<li> s2</li>
<li> s3</li>
<li> s4</li>
<li> s5</li>
</ul>
<script>
var lis = document.getElementsByTagName('li');
var num = lis.length;
for(let i=0; i<num; i++){
lis[i].onclick=function(){
alert('i='+i );
}
}
</script>
如果把let i=0改为var i=0 ,就全是报5
用jquery做:
<ul>
<li> s1</li>
<li> s2</li>
<li> s3</li>
<li> s4</li>
<li> s5</li>
</ul>
<script src='http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js'></script>
<script>
$('li').click(function(){
alert($(this).index());
});
</script>
或者:
<ul>
<li> s1</li>
<li> s2</li>
<li> s3</li>
<li> s4</li>
<li> s5</li>
</ul>
<script src='http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js' ></script>
<script>
$('li').each(function(ix){
$(this).click(function(){
alert('i='+ix);
});
});
</script>
用闭包做:
<ul>
<li> s1</li>
<li> s2</li>
<li> s3</li>
<li> s4</li>
<li> s5</li>
</ul>
<script>
var lis = document.getElementsByTagName('li');
var num = lis.length;
for(var i=0; i<num; i++){
(function(nx){
lis[i].onclick=function( ){
alert('nx='+nx+',i='+i );
}
})(i);
}
</script>