原生JavaScript中获取元素索引的函数

相信使用过jQuery的朋友都知道index()方法, 她可以很方便的帮你找到当前元素在元素集合中索引位置. 那么, 原生JavaScript中如何获取呢? 这是我在写结构/表现/行为完全分离的选项卡(jQ版和原生JS版)一文时发现的问题. 今天一个朋友也问到我这个问题, 这个函数的确很实用. 和大家分享一下我的实现方法.
代码:

function index(current, obj){
	for (var i = 0;i < obj.length; i++) {
		if (obj[i] == current) {
			return i;
		}
	}
}

原理:
通过一个for循环遍历找出当前集合中与当前元素相等的元素,那么该元素的下标值即是当前元素在元素集合中的索引值.

共有 13 条评论.

发表评论2,162 Views

  1. 是沙发不!
    占坑看文章!

    [回复]

    Mr.Think 回复:

    @**会, 感谢你的关注与支持, 但本站拒绝任何性质的广告评论及没有实际意义的评论.

    [回复]

  2. function index(current, obj){
    for(var i in obj){
    if (obj[i] == current) {
    return i;
    }
    }
    }
    应该也可以的

    [回复]

    Mr.Think 回复:

    @web前端寒风, 呵呵..同一功能实现方法有很多种.还可以在jQuery库文件中找到相应的功能函数.

    [回复]

    redky 回复:

    @Mr.Think, 使用for in的话,要考虑obj的扩展.

    [回复]

    Mr.Think 回复:

    @redky,嗯 . 谢谢提醒.

  3. 第一次到你的博客,感觉很不错!

    [回复]

  4. 外闻网

    每日一访。。。

    [回复]

  5. 优化下:
    function index(current, obj){
    for (var i = 0, length = obj.length; i<length; i++) {
    if (obj[i] == current) {
    return i;
    }
    }
    }

    [回复]

    Mr.Think 回复:

    @严斌锋, 嗯 .. 这样更严谨. 但我的写法或许更简洁一些.~

    [回复]

    hwq8072 回复:

    @Mr.Think, 为什么说更严谨呢?

    [回复]

    Mr.Think 回复:

    @hwq8072, 这个主要是考虑到性能.for (var i = 0, length = obj.length; i

发表评论[无需注册]

Trackbacks and Pingbacks: