Javascript 获取已单击元素的ID
我有7个Javascript 获取已单击元素的ID,javascript,Javascript,我有7个元素,当我点击某人时,我想记录ID的名称,这是有效的,但只针对第一个元素,并且总是提醒选项卡1,当点击选项卡5时它不起作用,嗯,有什么问题吗 HTML 仅选择第一个匹配的元素。你必须选择所有元素。然后使用forEach()逐个添加事件(单击) 工作代码示例: document.querySelectorAll('.tabs heading').forEach(函数(el){ el.addEventListener('click',函数(){ 警报(this.id); }); });
元素,当我点击某人时,我想记录ID的名称,这是有效的,但只针对第一个元素,并且总是提醒选项卡1
,当点击选项卡5
时它不起作用,嗯,有什么问题吗
HTML
仅选择第一个匹配的元素。你必须选择所有元素。然后使用forEach()
逐个添加事件(单击
)
工作代码示例:
document.querySelectorAll('.tabs heading').forEach(函数(el){
el.addEventListener('click',函数(){
警报(this.id);
});
});代码>
-
表1
-
表2
-
表3
-
表4
-
表5
-
表6
-
表7
仅返回第一个匹配元素
您需要改为使用,并通过在获取的集合上循环来绑定事件侦听器
document.querySelectorAll(“.tabs标题”)
.forEach(项目=>{
item.addEventListener('单击',函数()){
警报(this.id);
})
});代码>
-
表1
-
表2
-
表3
-
表4
-
表5
-
表6
-
表7
文档。querySelector
仅选择与查询匹配的第一个元素。您必须使用querySelectorAll
并在所有元素上注册侦听器,或者使用事件委派在ul
(或其他父级)级别处理它
使用querySelectorAll
:
document.querySelectorAll('.tabs heading').forEach(函数(li){
li.addEventListener('click',function()){
警报(this.id);
});
});代码>
-
表1
-
表2
-
表3
-
表4
-
表5
-
表6
-
表7
您只附加到了第一个元素。谢谢,效果很好,我将接受您的回答!
<div class="tabs is-fullwidth">
<!-- Tabs navigation menu -->
<ul>
<li id="tab-1" class="tabs-heading is-active">
Tab 1
</li>
<li id="tab-2" class="tabs-heading">
Tab 2
</li>
<li id="tab-3" class="tabs-heading">
Tab 3
</li>
<li id="tab-4" class="tabs-heading">
Tab 4
</li>
<li id="tab-5" class="tabs-heading">
Tab 5
</li>
<li id="tab-6" class="tabs-heading">
Tab 6
</li>
<li id="tab-7" class="tabs-heading">
Tab 7
</li>
</ul>
</div>
document.querySelector('.tabs-heading').addEventListener('click', function() {
alert(this.id);
});