चूंकि मैं एक टिप्पणी के रूप में प्रतिक्रिया करने में असमर्थ हूं (बहुत कम कर्म मुझे लगता है), यहां एक पूर्ण उत्तर है। ब्राउज़र समर्थन के लिए jQuery की जांच को अनियंत्रित करने और स्थिर कारकों को न्यूनतम करने के लिए सबसे तेज़ तरीका आसानी से है।
जैसा कि यहां भी देखा गया है - http://jsperf.com/jquery-element-in-dom/28 - कोड इस तरह दिखेगा:
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);
यह शब्दार्थ jQuery.contains (document.documentElement, elt [0]) के समतुल्य है।
$foo.closest(document.documentElement)तेज है (अगर किसी को भी jsperf.com/jquery-element-in-dom की परवाह है )