Say we have a simple event button handler:
$( \"#aButton\" ).click(function() {
console.log( \"tile\" + this.val() + \"clicked\" );
});
I re
Use $(this)
to obtain the clicked element.
$("#aButton").click(function() {
console.log("tile " + $(this).val() + " clicked");
});
In addition, you can note that $(this)[0] === this
this
should can be used when using built in JavaScript methods, such as .addEventListener()
. Using this
in this context will return the Node that triggered the event.
The object that you clicked can be referred by this
, so saying this.id
will give you button's id "aButton". However, if you want to use jQuery's methods then you have to say $(this).attr('id')
which will again give you "aButton".
So you do have different mechanisms available to you but if you are using jQuery, it is preferable to use jQuery methods.
this
is the raw DOM element. You have to wrap it in a jQuery object if you want to use jQuery functions on it.
console.log( "tile" + $(this).val() + "clicked" );
// ^^^^^^^^^^^^^
Inputs have a property called value
that does the same. So you can use it on raw DOM inputs like this:
console.log( "tile" + this.value + "clicked" );
// ^^^^^^^^^^