Ich habe eine Funktion, die von Parameter JQuery-Objekt erwarten. Ich muss herausfinden, ob JQuery-Objekt in DOM existiert oder nicht (in $('<div></div>')
Fall).Überprüfen, ob JQuery-Objekt in DOM existiert
Ich überprüfe nach Duplikaten und fand mehrere Antworten (link1, link2, link3). Kann ein Experte etwas Licht scheinen, ist der beste (schnellste) Weg es zu tun.
Optionen sind:
$.contains //not working
$a.find
$a.parent()
$a.closes()
document.contains()
$a[0].isConnected
Snippet:
var a = $("#test"); //length 1
var b = $('<div></div>'); //length 1
console.log("contains: ", $.contains(document, a), $.contains(document, b)); //false, false
console.log("find: ", !!$(document).find(a).length, !!$(document).find(b).length); // true, false
console.log("parent: ", !!a.parent().length, !!b.parent().length); // true, false
console.log("closest: ", !!a.closest('body').length, !!b.closest('body').length); //true, false
console.log("document.contains: ", document.contains(a[0]), document.contains(b[0])); //true, false
console.log("isConnected: ", a[0].isConnected, b[0].isConnected); //true, false
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="test"></div>
</body>
</html>
Danke.
Hallo, document.contains funktioniert nicht in IE 11. – Makla
@Makla Sie nicht das Browser-Kompatibilität als eine Ihrer Anforderungen erwähnen. Wenn das der Fall ist, dann ist, wie ich oben sagte, $ elem.closest ('body') 'die zweitschnellste Alternative. :) – Harangue