getElementsByClassName[i] returns 未定义
getElementsByClassName[i] returns undefinend
我有一些元素与 class "preview"。我想让其中一个可以点击,所以首先我想通过
在 HTML 集合中找出它的索引号
console.log(document.getElementsByClassName("preview"));
这 return 一个 HTML 集合,我可以在其中看到所需元素的索引号是 3。
现在我想给它分配一个事件侦听器,但是它 returns "Cannot assign 'addEventListener' to undefined"
document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")
如果只有 3
个元素具有 class preview
,则此集合的最后一个索引是 2
而不是 3
,因为 NodeList
集合 0
像任何其他 array
.
一样编入索引
改变这个:
document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")
以下内容:
document.getElementsByClassName("preview")[2].addEventListener("click",someFunction)
注:
- 请注意,我删除了
" "
包装的回调函数
addEventListener
,也去掉了两个括号,所以
附加事件侦听器时不会调用函数。
- 确保在页面完全加载后调用您的代码。
我有一些元素与 class "preview"。我想让其中一个可以点击,所以首先我想通过
在 HTML 集合中找出它的索引号console.log(document.getElementsByClassName("preview"));
这 return 一个 HTML 集合,我可以在其中看到所需元素的索引号是 3。
现在我想给它分配一个事件侦听器,但是它 returns "Cannot assign 'addEventListener' to undefined"
document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")
如果只有 3
个元素具有 class preview
,则此集合的最后一个索引是 2
而不是 3
,因为 NodeList
集合 0
像任何其他 array
.
改变这个:
document.getElementsByClassName("preview")[3].addEventListener("click","someFunction()")
以下内容:
document.getElementsByClassName("preview")[2].addEventListener("click",someFunction)
注:
- 请注意,我删除了
" "
包装的回调函数addEventListener
,也去掉了两个括号,所以 附加事件侦听器时不会调用函数。 - 确保在页面完全加载后调用您的代码。