যেহেতু আমি মন্তব্য হিসাবে প্রতিক্রিয়া জানাতে অক্ষম (আমার ধারণা খুব কম কর্মফল), তাই এখানে একটি সম্পূর্ণ উত্তর দেওয়া হয়েছে। ব্রাউজার সমর্থনের জন্য 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 (ডকুমেন্ট.ডোকমেন্ট এলিমেন্ট, এলট [0]) এর সমান।
$foo.closest(document.documentElement)হয় দ্রুত (যদি কেউ খেয়াল jsperf.com/jquery-element-in-dom )