用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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
js 发布订阅模式的实例讲解
Sep 10 Javascript
phantomjs导出html到pdf的方法总结
Oct 19 Javascript
three.js中3D视野的缩放实现代码
Nov 16 Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
js实现轮播图特效
May 28 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数组
2006/10/09 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
JS高级笔记
2011/07/13 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
python中元类用法实例
2014/10/10 Python
Python多进程同步简单实现代码
2016/04/27 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Python Django基础二之URL路由系统
2019/07/18 Python
python爬虫增加访问量的方法
2019/08/22 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
优秀员工表扬信
2014/01/17 职场文书
老龙头导游词
2015/02/11 职场文书
Python打包为exe详细教程
2021/05/18 Python