如何找到正在点击的按钮的id ?

<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>

function reply_click()
{
}

当前回答

第一种方法:用这个发送触发元素

<button id="btn01" onClick="myFun(this)">B1</button>
<button id="btn02" onClick="myFun(this)">B2</button>
<button id="btn03" onClick="myFun(this)">B3</button>

<script>
  function myFun(trigger_element)
  {
      // Get your element:
      var clicked_element = trigger_element

      alert(clicked_element.id + "Was clicked!!!");
  }
</script>

通过这种方式发送一个类型为:HTMLElement的对象,你得到元素本身。您不需要关心元素是否有id或任何其他属性。它自己工作得很好。


第二种方法:使用this.id发送触发元素id

<button id="btn01" onClick="myFun(this.id)">B1</button>
<button id="btn02" onClick="myFun(this.id)">B2</button>
<button id="btn03" onClick="myFun(this.id)">B3</button>

<script>
  function myFun(clicked_id)
  {
      // Get your element:
      var clicked_element = document.getElementById(clicked_id)

      alert(clicked_id + "Was clicked!!!");
  }
</script>

这种方式发送一个类型为:String的对象,而不获取元素本身。所以在使用之前,您需要确保元素已经有一个id。 你不能自己发送元素id,比如onClick="myFun(btn02)"。它不是干净的代码,它使你的代码失去功能。


在你的情况下:

<button id="1" onClick="reply_click(this.id)">B1</button>
<button id="2" onClick="reply_click(this.id)">B2</button>
<button id="3" onClick="reply_click(this.id)">B3</button>
    
<script type="text/javascript">
  function reply_click(clicked_id)
  {
      alert(clicked_id);
  }
</script>

其他回答

如果您不想传递任何参数给onclick函数,只需使用event。目标获取被单击的元素:

<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>

function reply_click()
{
    // event.target is the element that is clicked (button in this case).
    console.log(event.target.id);
}

按钮1按钮2按钮3

var reply_click = function() { 
     alert("Button clicked, id "+this.id+", text"+this.innerHTML); 
} 
document.getElementById('1').onclick = reply_click; 
document.getElementById('2').onclick = reply_click; 
document.getElementById('3').onclick = reply_click;

使用纯javascript,你可以做到以下几点:

var buttons = document.getElementsByTagName("button");
var buttonsCount = buttons.length;
for (var i = 0; i < buttonsCount; i += 1) {
    buttons[i].onclick = function(e) {
        alert(this.id);
    };
}​

检查它在JsFiddle

一般来说,如果将代码和标记分开,事情就更容易保持有序。定义所有元素,然后在JavaScript部分定义应该在这些元素上执行的各种操作。

当调用事件处理程序时,它是在所单击元素的上下文中调用的。标识符this会指向你点击的DOM元素。然后,您可以通过该标识符访问元素的属性。

例如:

<button id="1">Button 1</button>
<button id="2">Button 2</button>
<button id="3">Button 3</button>

<script type="text/javascript">
var reply_click = function()
{
    alert("Button clicked, id "+this.id+", text"+this.innerHTML);
}
document.getElementById('1').onclick = reply_click;
document.getElementById('2').onclick = reply_click;
document.getElementById('3').onclick = reply_click;
</script>

抱歉,这是一个很晚的回答,但如果你这样做的话,它真的很快:-

$(document).ready(function() {
  $('button').on('click', function() {
     alert (this.id);
  });
});

这将获得单击的任何按钮的ID。

如果你想要在某个地方点击按钮的值,就把它们放在容器中

<div id = "myButtons"> buttons here </div>

并更改代码为:-

 $(document).ready(function() {
      $('.myButtons button').on('click', function() {
         alert (this.id);
      });
    });

我希望这对你们有帮助