javascript - 为什么我一直收到 .addEventListener is not a function?

标签 javascript function addeventlistener event-listener

所以我正在使用 JW Player,除了我正在开发的一项功能之外,一切都运行良好。当我运行代码时,我收到控制台错误: 未捕获类型错误:upTop.addEventListener不是函数n

代码如下:

                var upTop = document.getElementsByClassName('playlist-item');

                upTop.addEventListener('click', function() {
                jwplayer.setup({autostart: true, floating: {dismissable: true}});
                       window.scrollTo(0, 0);
                });

我这里缺少某种语法错误吗?

最佳答案

调用 getElementsByClassName 的工作方式与 getElementById 不同。多个元素可以具有相同的类名,因此返回的是一个数组。例如,如果您希望返回第一项,因为您知道该类只有一个元素,则

var upTop = document.getElementsByClassName('playlist-item')[0];

就足够了。否则,您可以循环遍历 upTop 中的所有项目并向所有项目添加事件监听器。纯 JS 中:

for (var i=0; i < upTop.length;i++) {
 upTop[i].addEventListener('click', function() {
    wplayer.setup({autostart: true, floating: {dismissable: true}});
    window.scrollTo(0, 0);
 });
}

关于javascript - 为什么我一直收到 .addEventListener is not a function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55482539/

相关文章:

Javascript 类与 Nodejs 中函数的 "List"

javascript - Window.parent.postMessage Ack 的问题

javascript - Google Chrome 扩展程序看不到点击次数?

javascript - 尝试将 http 响应分配给数据源时出现 Angular 表错误

javascript - 如何获取 javascript、css、图像等网页资源的大小

javascript - 从函数中取出 var

javascript - 获取 JavaScript 函数的内容

javascript - 为什么我在使用变量 'name' 时在 Chrome 调试器中得到错误对象没有方法?

javascript - mongoose - 是否可以在运行时动态地向模型添加方法?

javascript - 将多个屏幕外 Canvas 绘制到屏幕 Canvas 上