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

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

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)
                }   
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cxz792116/article/details/52383798
个人分类: 前端
上一篇javascript和jquery的克隆
下一篇判断一个变量是否为数组的几种方法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭