如何获取作为(e)传递的元素的ID?
window.addEventListener('load', function(){ var tags = document.getElementsByClassName("tag"); for (i=0; i我需要在tagClick中获取元素/对象,以便我可以更改其属性
HTML:
请注意,附加事件的元素是div,但是当使用e.srcElement时,ig会给我图像对象.
绑定事件侦听器时addEventListener
,会通过this
引用绑定事件的元素来调用它.所以,this.id
将成为id
元素的(如果有的话).
alert('The id of the element you clicked: ' + this.id);
但你用这一行打破了这个:
tags[i].addEventListener('mousedown', function(e){ tagClick(e) }, false);
...因为你在中间放了一个额外的功能,然后tagClick
没有设置就打电话this
.不需要额外的功能,将其更改为:
tags[i].addEventListener('mousedown', tagClick, false);
......所以this
不要搞砸了.或者,如果您希望使用额外功能,请确保this
使用Function#call
以下方法进行维护:
tags[i].addEventListener('mousedown', function(e){ tagClick.call(this, e) }, false);
...但是没有理由使用所tagClick
显示的功能.
(标准)事件对象也具有属性target
(可能不是您绑定事件的元素,它可能是后代)和currentTarget
(它将是您绑定事件的元素).但this
如果您使用addEventListener
(甚至attachEvent
在IE上),则方便可靠.