2012-02-19 6 views
0

я отчасти понимаю, как .eq() функция работает в JQuery,JQuery оповещения .eq значение()

<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 
}); 

Благодаря

ответ

8

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

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

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

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

+0

Собирался сделать некоторые магии с prevUntil, но ты меня опередил с более хорошим решением:) –

+0

@AlexanderVarwijk - Это одна из самых больших вещей jQuery - часто бывает простое решение! –

+0

безупречный. благодаря! – hellomello

0

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

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

Почему кавычки как апострофы? –

+0

@Adam Вопрос был отредактирован, когда я написал ответ, не было ни кавычек, ни апострофов, окружающих селектор. –

+0

О, ладно, я думал, что кое-что, о чем я не знал, на секунду, спасибо. –

0

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

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

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

@andrewliu ** Кроме того, это лишний вопрос. Пожалуйста, найдите ответы здесь ** - http://stackoverflow.com/questions/4849677/how-to-get-the-eq-value/24141707#24141707 – Swanidhi

Смежные вопросы