Подтвердить что ты не робот

Получить индекс элемента clicked в коллекции с помощью jQuery

Как получить индекс нажатого элемента в коде ниже?

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

С Firebug я увидел это: jQuery151017197709735298827: 2 (я щелкнул во втором элементе).

4b9b3361

Ответ 1

Это будет предупреждать индекс выбранного селектора (начиная с 0 для первого):

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

Ответ 2

$('selector').click(function (event) {
    alert($(this).index());
});

jsfiddle

Ответ 3

Братья и сестры

$(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>

$('#container').on('click', 'a', function() {
  console.log($(this).index());
});
<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>

Ответ 4

Просто сделайте так: -

$('ul li').on('click', function(e) {
    alert($(this).index()); 
});

ИЛИ

$('ul li').click(function() {
    alert($(this).index());
});

Ответ 5

если вы используете.bind (это), попробуйте следующее:

let index = Array.from(evt.target.parentElement.children).indexOf(evt.target);

$(this.pagination).find("a").on('click', function(evt) {
        let index = Array.from(evt.target.parentElement.children).indexOf(evt.target);

        this.goTo(index);
    }.bind(this))