如何从ElementsByCassName(Javascript)中知道单击了哪个元素

如何从ElementsByCassName(Javascript)中知道单击了哪个元素,javascript,Javascript,此问题不适用,因为另一个问题是针对document.getElementById的,而这是针对document.getElementsByClass的。不同的是,getElementById返回一个元素,而getElementsByClass返回一个或多个元素。我不知道当你把多个元素放在同一个监听器上时是否也是这样 在keyClick中,此将引用挂接事件的元素。(在事件对象keyClickreceives上,它也可以作为currentTarget使用。)如果您想知道实际单击了哪个元素(例如,如果

此问题不适用,因为另一个问题是针对document.getElementById的,而这是针对document.getElementsByClass的。不同的是,getElementById返回一个元素,而getElementsByClass返回一个或多个元素。我不知道当你把多个元素放在同一个监听器上时是否也是这样

keyClick
中,
将引用挂接事件的元素。(在事件对象
keyClick
receives上,它也可以作为
currentTarget
使用。)如果您想知道实际单击了哪个元素(例如,如果它是连接处理程序的
.small\u key
元素的后代元素),那就是事件对象上的
target
。如果直接单击
.small_键
元素(不是后代),
currentTarget
target
将是相同的

例如:

var-keys=document.getElementsByClassName(“small_-key”);
对于(var i=0;i尝试

您可以使用
引用引发事件的当前对象

function keyClick(){}
var-keys=document.getElementsByClassName(“small_-key”);

for(i=0;iSide注意:你的代码正在成为牺牲品(这是我贫血的小博客上的一篇文章)。一定要声明你的变量(比如上面的
i
)(我是javascript新手)你是什么意思?像这样,for(var i=0;iYes.Or)(使用现代javascript)您可以使用
let
,具体取决于。为什么要进行向下投票?它将在单击事件时返回所需的DOM元素。如果进行向下投票,请添加适当的注释。
function keyClick(){}
var keys = document.getElementsByClassName("small_key");

for(i=0; i<keys.length; i++) {
    keys[i].addEventListener("click", function(){ var ctrl = this; keyClick(this); });
}

function keyClick(obj){
    console.log(obj);
}