Um auf indirekte Parents (Groß- bzw. Groß-groß-Eltern und deren Vorfahren) zu prüfen:
... muss man das Rad nicht neu unbedingt erfinden, weil viele Browser die Methode .contains() bei Elementobjekten kennen.
In Browsern, die sie nicht kennen, kann man Elementobjekte mit der Methode erweitern.
var c = [Object child];
var p = [Object parent]
Dann geht:
p.contains(c) // true oder false
Mathias