The this and target keywords can be used in JavaScript events to get the element associated to the registered event.
- this - is allways what the event was bound to (the object to which the event was registered).
- target - is a property of the Event object. event.target is the element that triggers the event.


• To can use the target property, you must add a parameter to the function with the event.
Syntax:
object.event = function(ev){
 // here you can use: ev.target
}

The this keyword and ev.target make the difference between the object to which the event is registered and the element that triggers the event. Sometimes they represent the same object, but not allways, especially when we work with parent and children elements.

- Here's an example. A #parent DIV with a #child DIV inside it; and onclick event registered to #parent, getting the ID of the element returned by this and ev.target.
<!doctype html>
<html>
<head>
<title>title</title>
<style>
#parent {
 height: 7em;
 background: #00da01;
 padding: 1em;
}
#child {
 height: 70%;
 margin: 1em 5em;
 background: #8889fe;
}
</style>
</head>
<body>
<h4>example this and target</h4>
<p>Click on the Child (blue rectangle), then on the Parent (green area), and see the difference in the alert window.</p>

<div id='parent'>Parent
 <div id='child'>Child</div>
</div>
<script>
document.getElementById('parent').onclick = function(ev){
 var id1 = this.id;
 var id2 = ev.target.id;
 alert('this = '+ id1 +'\n ev.target = '+ id2);
}
</script>
</body>
</html>

Working with this keyword and event.target

The this keyword and ev.target are useful in events for example when you want to register an event with instructions to an element but not to its children, or with different instructions for children. Or, when you want to work exactly with the element which triggers the event (use ev.target).


- In the following example the alert window is displayed only when you click on the Parent DIV.
<!doctype html>
<html>
<head>
<title>title</title>
<style>
#parent {
 height: 7em;
 background: #00da01;
 padding: 1em;
}
#child {
 height: 70%;
 margin: 1em 5em;
 background: #8889fe;
}
</style>
</head>
<body>
<h4>example ev.target</h4>
<p>Click on the Child (blue rectangle), then on the Parent (green area).</p>

<div id='parent'>Parent
 <div id='child'>Child</div>
</div>

<script>
document.getElementById('parent').onclick = function(ev){
 if(this === ev.target) {
 alert(this.id);
 }
}
</script>
</body>
</html>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which HTML5 tag defines marked text? (can be used to highlight parts of text)
<mark> <embed> <span>
<p>Free corses: <mark>coursesweb.net</mark> for Web Development.</p>
Which CSS pseudo-class adds a style to an element when the mouse is over it?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Click on the function which returns a string value that represents the number rounded to the x digits after the decimal point.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicate the PHP function which reads an entire file into an array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
this and target in JavaScript Events

Last accessed pages

  1. Convert XML to JSON in JavaScript (21274)
  2. innerHTML and outerHTML to Get and Replace HTML content (22099)
  3. Creating objects in ActionScript (8098)
  4. Insert, Select and Update NULL value in MySQL (44208)
  5. JavaScript Chronometer / Stopwatch (5383)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (1278)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (1243)
  3. Tabs effect with CSS (1235)
  4. Contact page - CoursesWeb (1233)
  5. Insert, Select and Update NULL value in MySQL (730)