相信使用过jQuery的朋友都知道index()方法, 她可以很方便的帮你找到当前元素在元素集合中索引位置. 那么, 原生JavaScript中如何获取呢? 这是我在写结构/表现/行为完全分离的选项卡(jQ版和原生JS版)一文时发现的问题. 今天一个朋友也问到我这个问题, 这个函数的确很实用. 和大家分享一下我的实现方法.
代码:
function index(current, obj){
for (var i = 0;i < obj.length; i++) {
if (obj[i] == current) {
return i;
}
}
}
原理:
通过一个for循环遍历找出当前集合中与当前元素相等的元素,那么该元素的下标值即是当前元素在元素集合中的索引值.
是沙发不!
占坑看文章!
[回复]
Mr.Think 回复:
九月 2nd, 2010 at 10:13
@**会, 感谢你的关注与支持, 但本站拒绝任何性质的广告评论及没有实际意义的评论.
[回复]
function index(current, obj){
for(var i in obj){
if (obj[i] == current) {
return i;
}
}
}
应该也可以的
[回复]
Mr.Think 回复:
八月 30th, 2010 at 09:48
@web前端寒风, 呵呵..同一功能实现方法有很多种.还可以在jQuery库文件中找到相应的功能函数.
[回复]
redky 回复:
九月 9th, 2010 at 09:38
@Mr.Think, 使用for in的话,要考虑obj的扩展.
[回复]
Mr.Think 回复:
九月 9th, 2010 at 13:29
@redky,嗯 . 谢谢提醒.
第一次到你的博客,感觉很不错!
[回复]
每日一访。。。
[回复]
优化下:
function index(current, obj){
for (var i = 0, length = obj.length; i<length; i++) {
if (obj[i] == current) {
return i;
}
}
}
[回复]
Mr.Think 回复:
八月 27th, 2010 at 09:27
@严斌锋, 嗯 .. 这样更严谨. 但我的写法或许更简洁一些.~
[回复]
hwq8072 回复:
九月 28th, 2010 at 22:34
@Mr.Think, 为什么说更严谨呢?
[回复]
Mr.Think 回复:
九月 29th, 2010 at 09:51
@hwq8072, 这个主要是考虑到性能.for (var i = 0, length = obj.length; i