2011-09-28 64 views
1

我试图获取数组中的触发器元素的索引。数组中的对象的jQuery索引

的HTML如下:

<ul> 
    <li><a href="#" rel="group">Link 1</a></li> 
    <li><a href="#" rel="group">Link 2</a></li> 
    <li><a href="#" rel="group">Link 3</a></li> 
</ul> 

然后在点击我打电话OBJ对象的run()方法:

var obJ = { 
    run : function(obj) { 
     var att = obj.attr('rel'); 
     var arr = jQuery.find('a[rel='+att+']'); 
     alert(obj.indexOf(arr)); 
    } 
}; 
$(function() { 
    $('a.click').click(function() { 
     obJ.run($(this)); 
     return false; 
    }); 
}); 

以上但不给我收集数组中的触发器的索引。

有什么想法?

回答

4

你想要jQuery.index()

var obj = { 
    run: function(obj) { 
     var att = obj.attr('rel'); 
     var index = $('a[rel='+att+']').index(obj); 
    } 
}; 
+0

谢谢你们 - 这正是我需要的。 – user398341

1

不要你的意思呢?

alert(arr.indexOf(obj)); 
0

迈克Haboustak的答案很可能是做的最好的方式,但你也可以做类似

$('a.click').each(function(index, o){ 
    $(o).click(function() { obj.run($(o), index); return false; }); 
}); 

类似的结果略有不同的方法。