用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同时按下两个方向键
Dec 01 Javascript
JavaScript 学习笔记(十二) dom
Jan 21 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
Aug 30 Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
vue全局自定义指令-元素拖拽的实现代码
Apr 14 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 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
终于听上了直流胆调频
2021/03/02 无线电
PHP与Java进行通信的实现方法
2013/10/21 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
python if not in 多条件判断代码
2016/09/21 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
工业自动化毕业生自荐信范文
2014/01/04 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书