首页  >  问答  >  正文

在循环中获取相应的按钮值

一旦我从数组添加一组动态按钮,querySelectorAll 似乎没有获取按钮列表。 这是我的代码:我哪里出错了?

const btns = document.getElementById("container");
const textBtn = ["btn 1", "btn 2", "btn 3", "btn 4", "btn 5", "btn 6"]
for (i = 0; i < textBtn.length; i++) {
  btns.insertAdjacentHTML('beforeend', `<button  class="allbuttons" value=${textBtn[i]}>${textBtn[i]}</button>`);
}

const btn = document.querySelectorAll(".allbuttons")
for (var i = 0; i < btn.length; i++) {
  btn[i].addEventListener('click', function(event) {
    //console.log( btn[i]);
    console.log(event.target.value);
    alert(event.target.value)
  });
}
<div id="container"></div>

P粉056618053P粉056618053202 天前436

全部回复(2)我来回复

  • P粉254077747

    P粉2540777472024-03-31 09:53:04

    您的问题可能来自于: <button class="allbuttons" value=${textBtn[i]}>${textBtn[i]}</button>

    您的值不在引号之间 <button class="allbuttons" value="${textBtn[i]}">${textBtn[i]}</button>

    回复
    0
  • P粉575055974

    P粉5750559742024-03-31 00:47:14

    有帮助吗?这是你需要的吗?

    const btns = document.getElementById("container");
    const textBtn = ["btn 1", "btn 2", "btn 3", "btn 4", "btn 5", "btn 6"]
    for (i = 0; i < textBtn.length; i++) {
      btns.insertAdjacentHTML('beforeend', ``);
    }
    
    const btn = document.querySelectorAll(".allbuttons")
    for (var i = 0; i < btn.length; i++) {
      btn[i].addEventListener('click', function(event) {
        console.log(event.target.value);
        alert(event.target.value)
      });
    }

    回复
    0
  • 取消回复