Como não consigo responder como comentário (carma muito baixo, acho), aqui está uma resposta completa. A maneira mais rápida é facilmente desenrolar a verificação do jQuery para obter suporte ao navegador e reduzir os fatores constantes ao mínimo.
Como também é visto aqui - http://jsperf.com/jquery-element-in-dom/28 - o código ficaria assim:
var isElementInDOM = (function($) {
var docElt = document.documentElement, find,
contains = docElt.contains ?
function(elt) { return docElt.contains(elt); } :
docElt.compareDocumentPosition ?
function(elt) {
return docElt.compareDocumentPosition(elt) & 16;
} :
((find = function(elt) {
return elt && (elt == docElt || find(elt.parentNode));
}), function(elt) { return find(elt); });
return function(elt) {
return !!(elt && ((elt = elt.parent) == docElt || contains(elt)));
};
})(jQuery);
É semanticamente equivalente a jQuery.contains (document.documentElement, elt [0]).
$foo.closest(document.documentElement)
é mais rápido (se cuidados ninguém jsperf.com/jquery-element-in-dom )