简体   繁体   English

JS:为什么当我点击按钮时没有提示信息?

[英]JS: why don't alert message when i click button?

I try the code below but when i click button does not show the alert message!我尝试下面的代码,但是当我单击按钮时不显示警报消息!

let clickButton = document.getElementsByClassName("buttonClass");

clickButton.onclick = clickFunc;

function clickFunc(){ alert("hello")};

console.log(clickButton);

i create buttons with document.createElement我用 document.createElement 创建按钮

console log return this控制台日志返回这个

I have try:我尝试过:

  1. To choose only one button like this let clickButton = document.getElementsByClassName("buttonClass")[1];要像这样只选择一个按钮, let clickButton = document.getElementsByClassName("buttonClass")[1]; but nothing但没有

  2. Also i have try to get element by tagname, loop with a length of buttons, and addeventlistener, but nothing again我也尝试通过标记名获取元素,使用一定长度的按钮循环和添加事件侦听器,但再也没有

 let buttons = document.getElementsByClassName("buttonClass"); for (var i = 0; i < buttons.length; i++) { buttons.item(i).addEventListener('click', function(e) { alert("hello"); }); }
 <button type="button" class="buttonClass">button 1</button> <button type="button" class="buttonClass">button 2</button> <button type="button" class="buttonClass">button 3</button> <button type="button" class="buttonClass">button 4</button> <button type="button" class="buttonClass">button 5</button>

Since your targeting by class, you get an array of elements.由于您通过 class 定位,因此您将获得一组元素。 So you have to iterate and attach click events to each element as show below;因此,您必须迭代并将单击事件附加到每个元素,如下所示;

let buttons = document.getElementsByClassName("buttonClass");
for (var i = 0; i < buttons.length; i++) {
  buttons.item(i).addEventListener('click', function(e) {
    alert("hello");
  });
}

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

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