首页 > 解决方案 > 访问 HTMLCollection

问题描述

所以我试图访问所有特定的类名,然后最终向它们添加一个事件监听器。我这样做是因为我正在构建一个 hightcharts 图表并且无法将点击事件专门添加到图例项。因此,在构建图表后,我尝试访问按钮,然后添加事件侦听器。

  getButtons() {    
    let buttons = document.getElementsByClassName('legend-btn');
    console.log(buttons);
    console.log(buttons[0]);
  },

第一个 console.log 带有一个长度为 48 的 HTMLCollection(我知道很长,但现在它的测试目的比什么都多)。
第二个 console.log 以未定义的形式返回。任何想法为什么?我希望做这样的事情:

    for (let i = 0; i < buttons.length; i++) {
      buttons[i].addEventListener('click', function () {
        changebackground(event);
      });
    }

关于如何为新建的 highcharts 图表添加点击事件的任何建议?

标签: highchartshtmlcollectionpure-js

解决方案


我可以建议您尝试:

for (let button of buttons) {
  button.addEventListener('click', changebackground);
}

我不知道你为什么打算打电话changebackground(event):为了做到这一点,你必须放入event事件监听器的括号。最好直接传递changebackground(假设它确实将事件作为参数)。

我不太确定我在告诉你什么:如果不了解更多上下文就很难说清楚。


推荐阅读