关闭

获取一堆name相同的标签,点击弹出显示第几个标签

57人阅读 评论(0) 收藏 举报
分类:

本题主要考察闭包的用法有三种解法

1. html部分;
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
        <li>555</li>
2. javascript部分;
        2.1第一种写法;自定义属性法
            var lis = document.getElementsByTagName("li");
            for(var i=0; i<lis.length; i++){
                lis[i].index = i+1;
                lis[i].onclick = function(){
                    alert(this.index);
                }
            }   
        2.2 第二种解法:闭包法
            var lis = document.getElementsByTagName("li");
            for(var i=0; i<lis.length; i++){
                (function(i){
                    lis[i].onclick = function(){
                        alert(i+1); 
                    } 
                })(i)
            }   
        2.3第三种解法:闭包返回值法;(不推荐使用) 
            var lis = document.getElementsByTagName("li");
                for(var i=0; i<lis.length; i++){
                    lis[i].onclick =(function(i+1){
                        return  function(){
                            alert(i+1);
                        }
                    })(i+1)
                }   
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3543次
    • 积分:248
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类