用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 相关文章推荐
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
May 24 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
js窗口震动小程序分享
Nov 28 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
webpack打包多页面的方法
Nov 30 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 Javascript
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
整理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的分页功能
2007/03/21 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Three.js学习之网格
2016/08/10 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
python提取照片坐标信息的实例代码
2019/08/14 Python
python数值基础知识浅析
2019/11/19 Python
如何解决安装python3.6.1失败
2020/07/01 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
附答案的Java面试题
2012/11/19 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
道路交通安全实施方案
2014/03/12 职场文书
工程造价专业求职信
2014/07/17 职场文书
流动人口婚育证明
2014/10/19 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
会计主管竞聘书
2015/09/15 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书