如何找到正在点击的按钮的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()
{
}

当前回答

按钮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;

其他回答

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

function reply_click()
{
   console.log(window.event.target.id)
}

您需要将ID作为函数参数发送。这样做:

<button id="1" onClick="reply_click(this.id) "“> B1 > < /按钮 <button id="2" onClick="reply_click(this.id) "“> B2 > < /按钮 <button id="3" onClick="reply_click(this.id) "“> B3 > < /按钮 <脚本type = " text / javascript”> 函数reply_click (clicked_id) { 警报(clicked_id); } > < /脚本

这将发送ID This。Id为clickked_id,可以在函数中使用。在这里看到它的行动。

(我认为id属性需要以字母开头。可能是错的。)

你可以选择事件委托……

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

function reply_click(e) {
    e = e || window.event;
    e = e.target || e.srcElement;
    if (e.nodeName === 'BUTTON') {
        alert(e.id);
    }
}

...但这要求您对古怪的事件模型相对熟悉。

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

<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>

你可以简单地这样做:

<input type="button" id="1234" onclick="showId(this.id)" value="click me to show my id"/>
<script type="text/javascript">
   function showId(obj) {
        var id=obj;
        alert(id);
   }