繁体   English   中英

确定在 div 中单击了哪个按钮

[英]Determine which button was clicked inside a div

我有以下 HTML 代码(我无法更改),我想确定点击了从 A 到 Z 的哪个按钮。 知道我该怎么做吗? 这是我尝试过的,但我总是得到“字母表”的结果。 我还可以写:

document.getElementById("A").onclick = button;
document.getElementById("B").onclick = button;

等等在myMain函数中,但有一个简单的解决方案吗?

 <html> <head> <script> function myMain() { document.getElementById("alphabet").onclick = button; } function button() { alert(this.id); } window.onload = myMain; </script> </head> <body> <div id="alphabet"> <button id="A">A</button> <button id="B">B</button> <button id="C">C</button> <button id="D">D</button> <button id="E">E</button> <button id="F">F</button> <button id="G">G</button> <button id="H">H</button> <button id="I">I</button> <button id="J">J</button> <button id="K">K</button> <button id="L">L</button> <button id="M">M</button> <button id="N">N</button> <button id="O">O</button> <button id="P">P</button> <button id="Q">Q</button> <button id="R">R</button> <button id="S">S</button> <button id="T">T</button> <button id="U">U</button> <button id="V">V</button> <button id="W">W</button> <button id="X">X</button> <button id="Y">Y</button> <button id="Z">Z</button> </div> </body> </html>

事件处理函数在它们绑定到的元素的上下文中触发,而不是在用于触发事件的元素的上下文中触发。

您需要捕获事件对象:

function button(event){
  // …
}

然后看一下点击的目标:

const element = event.target;

然后您可以查看该元素的id

console.log(element.id);

您可以使用事件对象

 window.onload = myMain; function myMain() { document.getElementById("alphabet").onclick = buton; } function buton(e) { if (e.target.tagName == 'BUTTON') { alert(e.target.id); } }
 <div id="alphabet"> <button id="A">A</button> <button id="B">B</button> <button id="C">C</button> <button id="D">D</button> <button id="E">E</button> <button id="F">F</button> <button id="G">G</button> <button id="H">H</button> <button id="I">I</button> <button id="J">J</button> <button id="K">K</button> <button id="L">L</button> <button id="M">M</button> <button id="N">N</button> <button id="O">O</button> <button id="P">P</button> <button id="Q">Q</button> <button id="R">R</button> <button id="S">S</button> <button id="T">T</button> <button id="U">U</button> <button id="V">V</button> <button id="W">W</button> <button id="X">X</button> <button id="Y">Y</button> <button id="Z">Z</button> </div>

尝试代码解释如下:

 alert(e.target.id);

您可以使用e.target.id. e.target 代表 DOM 对象,你可以访问它的所有属性和方法。

 window.onload = myMain; function myMain() { document.getElementById("alphabet").onclick = buton; } function buton(e) { alert(e.target.id); }
 <body> <div id="alphabet"> <button id="A">A</button> <button id="B">B</button> <button id="C">C</button> <button id="D">D</button> <button id="E">E</button> <button id="F">F</button> <button id="G">G</button> <button id="H">H</button> <button id="I">I</button> <button id="J">J</button> <button id="K">K</button> <button id="L">L</button> <button id="M">M</button> <button id="N">N</button> <button id="O">O</button> <button id="P">P</button> <button id="Q">Q</button> <button id="R">R</button> <button id="S">S</button> <button id="T">T</button> <button id="U">U</button> <button id="V">V</button> <button id="W">W</button> <button id="X">X</button> <button id="Y">Y</button> <button id="Z">Z</button> </div> </body>

是工作小提琴

var buttonElements = document.querySelectorAll('#alphabet button');
for (var i = 0;i < buttonElements.length;i++){
    buttonElements[i].addEventListener('click',function(){
        alert(this.getAttribute('id'));
    });
};

改用 Jquery

HTML

<div>
   <input type="button" id="A"/>
   <input type="button" id="B"/>
 </div>

Javascript

 $("button").Click(function(){
       alert($(this).attr("id"))
  })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM