I'm trying to come up with a reusable JS or jQuery function that would allow me to test if one object is a DOM descendant of another.
I've seen a model of testing for
$b.parents('nodename').length>0
Which is fantastic when you only need to check if an element is a child of any node by that name.
But what about a specific node? You can't test
$b.parents($a).length>0
Because jQuery parents takes a nodename expression as an argument to filter.
As a little background, I'm trying to test if a document click event's target is a child of a specific object. For instance, if the event.target is a child of $b, return true, otherwise, return false. But this function could have other implications later on.
Thanks!
a.contains(b)
This is a pure JavaScript solution using Node.contains. The function is inclusive, a.contains(a)
evaluates to true.
There's an edge case in IE9: if b
is a text node, contains
will always return false.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With