this
isn’t a jQuery “thing”, but a basic JavaScript one. It can’t be re-written the way you have in examples because it’s an object, in particular either a DOM element or a jQuery object (depending on what context you’re in). So if you did this:
$(this + " div")
What you’d really be doing is calling .toString()
on this
to concatenate the strings, resulting in:
$("[object Object] div")
….which isn’t a valid selector.
As for further reading, I believe this article continues to be one of the best references/resources to learn what this
(a context keyword) means.
Per comment requests, some examples of what this
is in various places:
- Event handlers, for example:
$("selector").click(function() { alert(this); });
this
refers to the DOM element the event handler is being triggered on.
- Inside a jQuery plugin, for example:
$.fn.myPlugin = function() { alert(this); });
this
is the jQuery object the plugin was called/chained on, for example:$("selector").myPlugin();
,this
is that$("selector")
jQuery object.
- Inside any generic function, for example:
function myFunc() { alert(this); };
this
is the context you’re in, whether it be an object or something else, a few examples:$("selector").click(myFunc);
–this
is the DOM element, like above$("selector").click(function() { myFunc(); });
–this
is the global content,window
myFunc.call(whatThisIs, arg1, arg2);
–this
iswhatThisIs
- See
Function.call()
andFunction.apply()
for more info
- See