Как получить идентификатор кнопки при нажатии в jQuery? - PullRequest
1 голос
/ 09 октября 2011

Я проверил некоторые похожие вопросы, которые были заданы.

Я хочу добавить / удалить кнопки, когда пользователи динамически нажимают кнопки добавления / удаления.Поэтому каждая кнопка должна иметь уникальный идентификатор, чтобы идентифицировать себя.

Вот часть HTML-кода:

<p id="q1">Question: 1<input type="text" class="ttt"/>
<button class="buttonPlus" type="button"></button>
<button class="buttonMinus" type="button" id="1"></button></p>

Вот часть кода jQuery:

var questionCount = 1;
$("#q1").append("<p id='p2'>Question: " + ++questionCount + "<input type='text'>\
<button type='button' class='buttonPlus'></button>\
<button type='button' class='buttonMinus' id=questionCount></button></p>");
//Re-binding
var newBtnPlus = $("#q1").find('.buttonPlus:last');
var newBtnMinus = $("#q1").find('.buttonMinus:last');
newBtnPlus.click(function(){
    btnPlsClickEvent(newBtnPlus);
});
newBtnMinus.click(function () {
    btnMnsClickEvent(newBtnMinus);
});



function btnMnsClickEvent(btn) {
var idNum = $(this).attr("id");
alert(idNum);}

Помимо описанного выше способа, я попытался: alter (this.id);изменить (btn.id);.etc.

Я не знаю, почему я не могу получить идентификатор, который я динамически назначил кнопкам минус, и при этом я не могу получить статически назначенный идентификатор, который выполняется html.

Я застрял в этом вопросе в течение нескольких часов.Не могли бы вы помочь мне?

Спасибо, Эшли

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Просто передайте ссылку на кнопку при вызове универсальной функции:

newBtnMinus.click(function () {
  btnMnsClickEvent(this); // use "this" instead of your selector object
});

function btnMnsClickEvent(btn) {
  var idNum = btn.id; // now reference the button you pass
  alert(idNum);
}
1 голос
/ 09 октября 2011

Не нужно использовать $(this).attr('id'), когда вы можете просто использовать this.id

$('button').click(function(){
    alert(this.id);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...