เนื่องจากฉันไม่สามารถตอบเป็นความคิดเห็นได้ (กรรมต่ำเกินไปฉันเดา) นี่คือคำตอบแบบเต็ม วิธีที่เร็วที่สุดคือง่ายต่อการยกเลิกการตรวจสอบ 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.contain (document.documentElement, elt [0])
$foo.closest(document.documentElement)
เร็วขึ้น (ถ้าใครสนใจjsperf.com/jquery-element-in-dom )