用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判断ie版本号的简单实现代码
Mar 05 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
AngularJS表格详解及示例代码
Aug 17 Javascript
jQuery Dialog 取消右上角删除按钮事件
Sep 07 Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 Javascript
vue实现底部菜单功能
Jul 24 Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
js刷新页面location.reload()用法详解
Dec 09 Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 Javascript
vue自定义右键菜单之全局实现
Apr 09 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 strtotime函数详解
2009/12/18 PHP
PHP学习笔记之一
2011/01/17 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
python关于倒排列的知识点总结
2020/10/13 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
12月小学生校园广播稿
2014/02/04 职场文书
便利店投资创业计划书
2014/02/08 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
公务员年终个人总结
2015/02/12 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
2015年工商所工作总结
2015/05/21 职场文书
庆元旦主持词
2015/07/06 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
MySQL数据库 安全管理
2022/05/06 MySQL