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.
target
property, you must add a parameter to the function with the event.object.event = function(ev){ // here you can use: ev.target }
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.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>
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
).
<!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>
<ul> <li>http://coursesweb.net/html/</li> <li>http://coursesweb.net/css/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net