如何在jQuery中检测当前元素的ID?

25

我有一些HTML代码:

<input type="button" id="btn1" class="myButton" value="Button 1"/>
<input type="button" id="btn2" class="myButton" value="Button 2"/>

我需要在每次用户点击按钮时运行一个jQuery函数,并且我必须使用它们的类来实现。

$('.myButton').click(function() {
   // do something
});

但是我应该做什么取决于当前元素的ID。

我的问题是如何检测调用此函数的元素?我需要知道它的ID。


1
可能是重复的问题:获取被点击项的ID - Felix Kling
6个回答

39
你可以使用this来访问当前元素,然后this.id将给出当前元素的id
$('.myButton').click(function() {
    alert(this.id);
});

27

如果你想保持在 jQuery 上下文中,你可以使用这段代码:

$('.myButton').click(function() {
    alert($(this).attr('id'));
});

用这种方法,你会更加灵活。


4

使用jQuery,我发现以下代码有效:

$(this).prop('id')

2

看一下这个。 你可以只使用attr()方法来获取点击元素的id,因为你绑定了一个click回调函数到每一个.myButton类的元素。


4
请添加解释和代码。请阅读http://stackoverflow.com/questions/how-to-answer - 为链接提供上下文 - Felix Kling
谢谢andreapier。这个点是$(this)... 同时也感谢其他所有的朋友们。 - Mohammad Saberi

1

this 在事件处理程序中是被点击的元素:

$('.myButton').click(function() {

   if (this.id === "btn1") {
       ...
   }    

});

0
$('.myButton').on('click',(e)=> {

 if (e.target.id === "btn1") {
     ...
}    

});

1
虽然这段代码可能回答了问题,但是提供关于为什么和/或如何回答问题的额外上下文可以提高其长期价值。 - Al Foиce ѫ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接