zoukankan      html  css  js  c++  java
  • 遍历ul下的li,点击弹出li的索引

     

     

    首先我们需要一个html结构

    复制代码
      <div >
            <ul>
                <li>a</li>
                <li>a</li>
                <li>a</li>
                <li>a</li>
                <li>a</li>
            </ul>
        </div>
    复制代码

    我们遍历ul 下所有的li 并添加点击事件,一般我们会在for循环里面添加点击事件,但是结果和我们所期盼不一样,那么是为什么呢????

    接下来看看我们的js代码

    复制代码
       var li = document.getElementsByTagName('li');
            for(var i = 0;i<li.length;i++){       
                (function(Index){
                    li[i].addEventListener('click',function(e){
                        alert('I am link #'+ Index );
                    },false);
                })(i)
           }
    复制代码

    我们实现了!!!

    这样就是得来我们想要的效果点击相应的li得来相应的索引。

    简单说一下实现的过程吧

    (function () { /* code */ } ()); // 推荐使用这个
    (function () { /* code */ })(); // 但是这个也是可以用的

    这是我整理立调函数或自执行函数;

    本质上我们是利用闭包的原理实现弹出的索引,我们立调函数传一个参数Index,也就是我们的索引i,在函数里面实现了闭包,

    Index会一直保留在作用域块内,这样我们再点击的时候,会调用作用域名内保存的索引,从而实现我们需要的功能;

    我们几个简单的例子

    复制代码
        function num(){
                var i = 0;
                return function(){
                    console.log(i++);
                }
            }
            var counter = num();
            console.log(counter()); // 0
         console.log(counter()); // ??
     
    复制代码
    复制代码
          var counter1 = (function(){
                var i = 0;
                
                return {
                    get:function(){
                        return i;
                    },
                    set:function(val){
                        i = val;
                    },
                    increment:function(){
                        return ++i;
                    }
                }
            }());
        

        console.log(counter1);
        console.log(counter1.get()); // ?
        console.log(counter1.set(3)); // ?
        console.log(counter1.increment()); // ?
        console.log(counter1.increment()); // ?

     
    复制代码
  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/yzhihao/p/6425464.html
Copyright © 2011-2022 走看看