使用jQuery获取集合中单击元素的索引

tho*_*hom 59 javascript jquery events jquery-selectors

如何获取下面代码中单击项的索引?

$('selector').click(function (event) {
    // get index in collection of the clicked item ...
});
Run Code Online (Sandbox Code Playgroud)

使用Firebug我看到了这个:( jQuery151017197709735298827: 2我点击了第二个元素).

Ant*_*Ant 100

这将提示被点击的选择器的索引(从第一个开始为0):

$('selector').click(function(){
    alert( $('selector').index(this) );
});
Run Code Online (Sandbox Code Playgroud)


rsp*_*lak 60

$('selector').click(function (event) {
    alert($(this).index());
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

  • 这给我带来了一些问题.返回的索引不正确.@ Ant的解决方案虽然对我有用. (3认同)

Tus*_*har 26

兄弟姐妹

$(this).index() 如果元素是兄弟元素,则可用于获取被点击元素的索引.

<div id="container">
    <a href="#" class="link">1</a>
    <a href="#" class="link">2</a>
    <a href="#" class="link">3</a>
    <a href="#" class="link">4</a>
</div>
Run Code Online (Sandbox Code Playgroud)

$('#container').on('click', 'a', function() {
  console.log($(this).index());
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="container">
  <a href="#" class="link">1</a>
  <a href="#" class="link">2</a>
  <a href="#" class="link">3</a>
  <a href="#" class="link">4</a>
</div>
Run Code Online (Sandbox Code Playgroud)


不是兄弟姐妹

如果没有向该.index()方法传递参数,则返回值是一个整数,指示jQuery对象中第一个元素相对于其兄弟元素的位置.

将选择器传递给index(selector).

$(this).index(selector);
Run Code Online (Sandbox Code Playgroud)

例:

查找<a>单击的元素的索引.

<tr>
    <td><a href="#" class="adwa">0001</a></td>
</tr>
<tr>
    <td><a href="#" class="adwa">0002</a></td>
</tr>
<tr>
    <td><a href="#" class="adwa">0003</a></td>
</tr>
<tr>
    <td><a href="#" class="adwa">0004</a></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

小提琴

$('#table').on('click', '.adwa', function() {
    console.log($(this).index(".adwa"));
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="table">
    <thead>
        <tr>
            <th>vendor id</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><a href="#" class="adwa">0001</a></td>
        </tr>
        <tr>
            <td><a href="#" class="adwa">0002</a></td>
        </tr>
        <tr>
            <td><a href="#" class="adwa">0003</a></td>
        </tr>
        <tr>
            <td><a href="#" class="adwa">0004</a></td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

  • 啊啊,我要找的就是《不是兄弟姐妹》! (2认同)

Siv*_*ran 10

就这样做: -

$('ul li').on('click', function(e) {
    alert($(this).index()); 
});
Run Code Online (Sandbox Code Playgroud)

要么

$('ul li').click(function() {
    alert($(this).index());
});
Run Code Online (Sandbox Code Playgroud)