2016-06-12 2 views
0

У меня есть этот код:Как получить индекс элемента по классу, который щелкнул

<button class="remove" value="1" /> 
<button class="remove" value="2" /> 
<button class="remove" value="3" /> 
$(document).on('click', ".remove", function(e) { 
    alert($(this).index()); 
}); 

Он всегда предупреждая 0. Если пользователь нажал на button, который имеет значение 2, он должен предупредить 1, но в моем коде он предупреждает 0.

+4

Ваш код работает абсолютно нормально здесь: https: // jsfiddle.net/RoryMcCrossan/cp2rfhue/. Обратите внимание, однако, что ваш HTML недопустим, поскольку элементы 'button' должны иметь закрывающие теги, подобные этому: https://jsfiddle.net/RoryMcCrossan/cp2rfhue/1/ –

+1

Учитывая, что ваши кнопки имеют класс« удалить », я угадывая, что они не являются братьями и сестрами, как показано в вопросе, но фактически содержатся в строках таблицы или некоторых других элементах, где нажатие кнопки должно удалить свой родительский элемент? Это объясняет, что предупреждение всегда показывает 0. @RoryMcCrossan - возможно, OP использует xhtml? – nnnnnn

ответ

2

в зависимости от того, что вы хотите, чтобы, наконец, достичь и при условии, что:

<button class="remove" value="34" data-myval="a"/> 
<button class="remove" value="33" data-myval="b"/> 
<button class="remove" value="32" data-myval="c"/> 

если вы хотите получить значение «значение»:

$(document).on('click', ".remove", function(e) { 
    alert($(this).val()); 
}); 

, если вы хотите, чтобы получить индекс, что была нажата:

$(document).on('click', ".remove", function(e) { 
    alert($(this).index()); 
}); 

, если вы хотите, чтобы получить пользовательское значение:

$(document).on('click', ".remove", function(e) { 
    alert($(this).data('myval')); 
}); 
1

Как отметил @Rory McCrossan, вы должны улучшить html button:

$(document).on('click', ".remove", function(e) { 
 
    console.log($(this).index()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="remove" value="1">Button 1</button> 
 
<button class="remove" value="2">Button 2</button> 
 
<button class="remove" value="3">Button 3</button>

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