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 相关文章推荐
jQuery 1.0.2
Oct 11 Javascript
js中根据字数截取字符串,不能截断url
Jan 12 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
判断字符串的长度(优化版)中文占两个字符
Oct 30 Javascript
JavaScript获取元素尺寸和大小操作总结
Feb 27 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
vue实现动态按钮功能
May 13 Javascript
微信小程序封装多张图片上传api代码实例
Dec 30 Javascript
react如何快速设置文件路径别名
Apr 28 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
python 容器总结整理
2017/04/04 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python使用folium excel绘制point
2019/01/03 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
Lucene推荐的分页方式是什么?
2015/12/07 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
对教师的评语
2014/04/28 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
详解Redis主从复制实践
2021/05/19 Redis