Javascript click event listener on multiple elements and get target ID(Javascript 在多个元素上单击事件侦听器并获取目标 ID)
问题描述
我有一个 javascript 文件,它在每个带有 <article>
标记的元素上设置一个点击"的 EventListener.我想在事件触发时获取点击的文章的 ID.出于某种原因,我的代码什么也没有产生!
I have a javascript file that sets an EventListener of 'click' on every element with the <article>
tag. I want to get the id of the article clicked when the event fires. For some reason, my code produces nothing!
我的javascript:
My javascript:
articles = document.getElementsByTagName('article');
articles.addEventListener('click',redirect(e),false);
function redirect(e){
alert(e.target.id);
}
为什么这不起作用?顺便说一句,我的文章设置在加载窗口时调用的函数中,我知道它肯定有效,因为该函数还有其他可用的东西.
Why isn't this working? BTW my article setup is in a function called when the window is loaded, and i know that works for sure because that function has other stuff that work.
编辑
所以我修复了我的代码,让它循环并将侦听器添加到每个文章元素,现在我得到一个警告框,里面什么都没有.当尝试输出没有 ID 的 e.target 时,我收到每个元素的以下消息:
So i fixed my code so it will loop and add the listener to every article element, and now i get an alert box with nothing in it. When trying to output the e.target without the ID, i get the following message for every element:
[object HTMLHeadingElement]
有什么建议吗?
另一个编辑
我当前的 javascript 代码:
My current javascript code:
function doFirst(){
articles = document.getElementsByTagName('article');
for (var i = 0; i < articles.length; i++) {
articles[i].addEventListener('click',redirect(articles[i]),false);
}
}
function redirect(e){
alert(e.id);
}
window.addEventListener('load',doFirst,false);
这是在页面加载完成时显示我的警报框,而没有考虑到我没有点击该死的东西:O
This is showing my alert boxes when the page finished loading, without considering that i haven't clicked a damn thing :O
推荐答案
您没有将文章对象作为参数传递给重定向.
You are not passing an article object to redirect as a parameter.
试试这个(编辑):
articles = document.getElementsByTagName('article');
for (var i = 0; i < articles.length; i++) {
articles[i].addEventListener('click',redirect,false);
}
function redirect(ev){
alert(ev.target.id);
}
希望,它会解决这个错误.
Hope, it will solve the bug.
这篇关于Javascript 在多个元素上单击事件侦听器并获取目标 ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Javascript 在多个元素上单击事件侦听器并获取目标
基础教程推荐
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01