javascript - getElementsByClassName[i] 返回未定义

标签 javascript html undefined addeventlistener nodelist

我有一些元素属于“预览”类。我想让其中一个可以点击,所以首先我想通过

找出它在 HTML 集合中的索引号
console.log(document.getElementsByClassName("preview"));

这确实返回了一个 HTML 集合,我可以在其中看到所需元素的索引号是 3。

现在我想为其分配一个事件监听器,但它返回“无法将‘addEventListener’分配给未定义”

document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")

最佳答案

如果只有 3 元素具有 preview 类,则此集合的最后一个索引是 2 而不是 3 作为 NodeList 集合是 0 索引,就像任何其他 array

改变这个:

document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")

以下内容:

document.getElementsByClassName("preview")[2].addEventListener("click",someFunction)

注意:

  • 请注意,我删除了包装回调函数的 "" addEventListener,并且去掉了两个括号,所以 附加事件监听器时不会调用函数。
  • 确保在页面完全加载后调用您的代码。

关于javascript - getElementsByClassName[i] 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45150601/

相关文章:

javascript - 使用javascript进行手写文本识别

html - 在消息字段中隐藏滚动条

javascript - SVG 不显示

javascript - 在replaceWith之后jquery中的数据对象未定义

javascript - 为什么需要这种模式?

javascript - AngularJs POST 方法到 springboot api

javascript - 添加事件监听器之前是否需要声明目标变量?

javascript - 如果选中复选框,如何逐行获取 td 值

javascript - 无法读取未定义 Node.js 和 Jade 的属性 'length'

Javascript json,检查所有键是否未定义 ('null' )并设置默认值