如何在jQuery中单击时获取按钮的ID?

时间:2011-10-09 02:44:34

标签: jquery button

我查了一些被问过的类似问题。

当用户动态点击添加/删除按钮时,我想添加/删除按钮。因此,每个按钮都必须有唯一的ID来标识自己。

以下是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);}

除了上面的方法,我尝试过: 改变(this.id); 改变(btn.id); .etc。

我不知道为什么我无法获得动态分配给减号按钮的id,也无法获得静态分配的html。

我被这个问题困住了好几个小时。 你能帮帮我吗?

谢谢, 阿什利

2 个答案:

答案 0 :(得分:3)

当你去调用泛型函数时,只需将参考传递给按钮:

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 :(得分:1)

当您只需使用$(this).attr('id')

时,无需使用this.id
$('button').click(function(){
    alert(this.id);
});