JS遍历ul下的li点击弹出li的索引的实现方法


Posted in Javascript onSeptember 19, 2016

首先我们需要一个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的索引,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
基于js 本地存储(详解)
Aug 16 Javascript
详解开源的JavaScript插件化框架MinimaJS
Oct 26 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 #Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 #Javascript
详解Node.Js如何处理post数据
Sep 19 #Javascript
React Native实现简单的登录功能(推荐)
Sep 19 #Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
Sep 19 #Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 #Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 #Javascript
You might like
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
Python数据类型学习笔记
2016/01/13 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
Python文件读写常见用法总结
2019/02/22 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
allbeauty美国:英国在线美容店
2019/03/11 全球购物
创先争优公开承诺书
2014/08/30 职场文书
任命书标准格式
2015/03/02 职场文书
关于感恩的作文
2019/08/26 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
详解Redis实现限流的三种方式
2021/04/27 Redis
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers