用Mootools获得操作索引的两种方法分享


Posted in Javascript onDecember 12, 2011

我们先说一下第一种方法,(此方法为一位QQ好友提供,感谢此人,此人昵称是:exf)

<body> 
<ul>Title1 
<li>11111</li> 
</ul> 
<ul>Title2 
<li>22222</li> 
</ul> 
<ul>Title3 
<li>33333</li> 
</ul> 
<ul>Title4 
<li>44444</li> 
</ul> 
<script type='text/javascript'> 
ul=$$('ul'); 
ul.addEvent('click',function(){ 
alert(ul.indexOf(this)); 
}); 
</script>

其实除了上边的方法外还有一种方法也能得到索引值,看下边的例子:
<body> 
<ul>Title1 
<li>11111</li> 
</ul> 
<ul>Title2 
<li>22222</li> 
</ul> 
<ul>Title3 
<li>33333</li> 
</ul> 
<ul>Title4 
<li>44444</li> 
</ul> 
<script type='text/javascript'> 
ul=$$('ul'); 
ul.each(function($I,i){ 
$I.onclick=function(){ 
alert(i); 
}; 
}) 
</script>

两种方法孰优孰劣一看便知,第一种方法需要再次使用indexOf函数判断,而第二种方式直接是作为参数把索引值传递进去了,就不需要额外的计算了.因此如果您需要获取索引值得时候推荐使用第二种方法.

下边我写了一个手风琴插件用来演示两种方法在实际应用过程中的表现.

<style type="text/css"> 
ul,li{font-size:12px;font-family:arial;padding:0;margin:0;} 
ul{width:300px;line-height:24px;font-weight:bold;background-color:#C1C2C1;border-bottom:1px solid #fff;text-indent:10px;} 
li{list-style:none;font-weight:normal;background-color:#e1e1e1;} 
</style> 
</head> 
<body> 
<ul>Title1 
<li>11111</li> 
</ul> 
<ul>Title2 
<li>22222</li> 
</ul> 
<ul>Title3 
<li>33333</li> 
</ul> 
<ul>Title4 
<li>44444</li> 
</ul> 
<script type='text/javascript'> 
var Acc=new Class({ 
Implements:[Options,Events], 

options:{ 


$Boxtit:false 

}, 

initialize:function(options){//初始化构造函数 


this.setOptions(options);//?置options 


if(!this.options.$Boxtit){return false;} 



this.Core(); 


}, 


Core:function(){ 



$Boxtit=this.options.$Boxtit; 



$Boxmsg=$Boxtit.getElement('li'); 



$Boxmsg.setStyle("display","none"); 



$Boxtit.each(function($I,i1){ 




$I.onclick=function(){ 





//i2=$Boxtit.indexOf(this);console.log(i1+'|'+i2);//??的i1和i2???上都是索引值 





$Boxmsg.setStyle("display","none"); 





this.getElement('li').setStyle("display",""); 




}; 


}) 

} 
}); 
new Acc({$Boxtit:$$('ul')}); 
</script>

只不过在上边的插件中为了提高效率,因此我使用了this,这样比用索引找寻DOM效率更高一些.
Javascript 相关文章推荐
JS 自动安装exe程序
Nov 30 Javascript
Js获取事件对象代码
Aug 05 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
May 28 Javascript
js预加载图片方法汇总
Jun 15 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
jQuery Validate插件实现表单验证
Aug 19 Javascript
js自定义瀑布流布局插件
May 16 Javascript
vue.js删除动态绑定的radio的指定项
Jun 02 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
聊聊鉴权那些事(推荐)
Aug 22 Javascript
JS正则表达式验证密码强度
Mar 18 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
Dec 12 #Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 #Javascript
Jquery阻止事件冒泡 event.stopPropagation
Dec 11 #Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 #Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 #Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 #Javascript
一个简单的js树形菜单
Dec 09 #Javascript
You might like
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
js异步编程小技巧详解
2017/08/14 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
节能环保标语
2014/06/12 职场文书
好的旅游活动方案
2014/08/19 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
2014年领班工作总结
2014/11/25 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
世界遗产导游词
2015/02/13 职场文书
城管个人总结
2015/02/28 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python