如何使用jquery获取match元素的索引

时间:2014-06-30 13:00:19

标签: jquery

我想只获得匹配元素的索引。就像我有' .get'很少TR的课程。我想根据' .get'进行索引。例如。 fiddle

.get 0
.get 1
.get 2


<table>
    <tr class="get"><td>view</td></tr>   
    <tr><td>view</td></tr>   
    <tr class="get"><td>view</td></tr>   
    <tr><td>view</td></tr>   
    <tr><td>view</td></tr>   
    <tr><td>view</td></tr>   
    <tr class="get"><td>view</td></tr>   
</table>

$('tr.get').click(function(){
    alert($(this,'.get').index())
})

3 个答案:

答案 0 :(得分:2)

.index( element )

  

如果选择器字符串作为参数传递,则.index()返回一个整数,指示jQuery对象中第一个元素相对于选择器匹配的元素的位置。

使用

$('.get').index(this);

DEMO

答案 1 :(得分:1)

或者,您可以直接在处理程序中附加索引。如果你有动态数据,它将会失败,但是如果你有大量的数据会更快,因为它不会每次都重新计算索引。

$('.get').each(function(index) {
    $(this).click(function() {
        alert(index);
    })
})

DEMO

答案 2 :(得分:0)

jsFiddle

<强> JS

$('.get').click(function () {
    alert($(this, '.get').index())
})

<强> HTML

<table>
    <tr class="get">
        <td>view</td>
    </tr>
    <tr>
        <td>view</td>
    </tr>
    <tr class="get">
        <td>view</td>
    </tr>
    <tr>
        <td>view</td>
    </tr>
    <tr>
        <td>view</td>
    </tr>
    <tr>
        <td>view</td>
    </tr>
    <tr class="get">
        <td>view</td>
    </tr>
</table>