Значение jquery alert.eq()

Я как-то понимаю, как функция.eq() работает в jquery,

<ul>
<li>item 2</li>
<li>item 4</li>
<li>item adf</li>
<li>item f</li>
</ul>

$('ul').find('li').eq(3); //this gives item f

но что, если бы я хотел щелкнуть по элементу adf, как мне получить предупреждение о 2.

$('ul li').click(function(){
alert('//getting eq value'); //and then when clicked, it should say 2
});

благодаря

3 ответа

Вы ищете index метод:

alert($(this).index());

Из документов:

Если аргумент не передается методу .index(), возвращаемое значение представляет собой целое число, указывающее положение первого элемента в объекте jQuery относительно его элементов-близнецов.


Чтобы получить индекс щелкнутого элемента, вы можете использовать this в качестве селектора для выбора элемента с кликом, а затем метод index() для получения индекса элемента:

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


Вышеупомянутые решения не будут работать, если список длинный. index() возвращает относительное значение, и значение изменится, когда добавлено больше тегов списка.

вы должны, возможно, сделать что-то следующее:

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

licensed under cc by-sa 3.0 with attribution.