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 相关文章推荐
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
基于jquery的9行js轻松实现tab控件示例
Oct 12 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
May 28 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
JavaScript登录验证码的实现
Oct 27 Javascript
微信小程序“摇一摇”的实例代码
Jul 20 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
浅谈JS和jQuery的区别
Mar 27 jQuery
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中static和const关键字用法分析
2016/12/07 PHP
js 自定义的联动下拉框
2010/02/07 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Python正规则表达式学习指南
2016/08/02 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
python中的for循环
2018/09/28 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
考试作弊检讨书大全
2014/02/18 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
青春寄语大全
2014/04/09 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
运动会演讲稿300字
2014/08/25 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python