Compare 'e.target' to a jQuery object
27,948
Solution 1
To check if e.target
has this class you can use the hasClass
function.
if ($(e.target).hasClass("selector"))
Or, if you really want to compare objects, note that jQuery selectors return a collection of items, so I think you'll want
if (e.target === $('.selector')[0])
Solution 2
You're close. Use .is()
instead:
if($(e.target).is('.selector')) {
// Your code
}
The trick here is that you wrap e.target
in a jQuery object to allow it access to all the useful jQuery methods.
If you're just seeing whether e.target
has a certain class, try using .hasClass()
in place of .is()
:
if($(e.target).hasClass('selector')) {
// Your code
}
Either method works, although .hasClass()
is a little clearer as to what the code does, and is faster than using .is()
Author by
dubbelj
Updated on September 03, 2022Comments
-
dubbelj over 1 year
What I want to do:
( clickedObject === someDiv ) //returns true or false
What I tried
( $(e.target) === $('.selector') ); //returns a false negative.
My workaround
( $(e.target).attr('class') === $('.selector').attr('class') ); //works as intended, not so clean though.
What is the right way to compare the object I clicked to an object in the DOM?