我有一些元素属于“预览”类。我想让其中一个可以点击,所以首先我想通过
找出它在 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/