Event.target

The target property of the Event interface is a reference to the object onto which the event was dispatched. It is different from Event.currentTarget when the event handler is called during the bubbling or capturing phase of the event.

Syntax

const theTarget = someEvent.target;

Value

EventTarget

Example

The event.target property can be used in order to implement event delegation.

// Make a list
const ul = document.createElement('ul');
document.body.appendChild(ul);

const li1 = document.createElement('li');
const li2 = document.createElement('li');
ul.appendChild(li1);
ul.appendChild(li2);

function hide(evt) {
  // e.target refers to the clicked <li> element
  // This is different than e.currentTarget, which would refer to the parent <ul> in this context
  evt.target.style.visibility = 'hidden';
}

// Attach the listener to the list
// It will fire when each <li> is clicked
ul.addEventListener('click', hide, false);

Specifications

Specification
DOM Standard (DOM)
# ref-for-dom-event-target③

Browser compatibility

BCD tables only load in the browser

Compatibility notes

On IE 6–8, the event model is different. Event listeners are attached with the non-standard EventTarget.attachEvent() method.

In this model, the event object has a Event.srcElement property (instead of the target property) and it has the same semantics as Event.target.

function hide(evt) {
  // Support IE6-8
  var target = evt.target || evt.srcElement;
  target.style.visibility = 'hidden';
}

See also