手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS遍历ul下的li点击弹出li的索引的实现方法
JS遍历ul下的li点击弹出li的索引的实现方法
摘要:首先我们需要一个html结构aaaaa我们遍历ul下所有的li并添加点击事件,一般我们会在for循环里面添加点击事件,但是结果和我们所期盼不...

首先我们需要一个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()); // ? console.log(counter1); console.log(counter1.get()); // 0 console.log(counter1.set(3)); // 3 console.log(counter1.increment()); // 4 console.log(counter1.increment()); // 5

以上所述是小编给大家介绍的JS遍历ul下的li点击弹出li的索引,希望对大家有所帮助,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对查字典教程网的支持!

【JS遍历ul下的li点击弹出li的索引的实现方法】相关文章:

JavaScript中的异常处理方法介绍

javascript实现十秒钟后注册按钮可点击的方法

JavaScript实现点击自动选择TextArea文本的方法

js实现鼠标移到链接文字弹出一个提示层的方法

CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法

根据内容自动调整弹出窗口大小的JS解决方案

Jquery注册事件实现方法

javascript瀑布流布局实现方法详解

javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法

JavaScript实现鼠标点击后层展开效果的方法

精品推荐
分类导航