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