パラメータJQueryオブジェクトから期待される関数があります。 DOM内にJQueryオブジェクトが存在するかどうかを調べる必要があります($('<div></div>')
の場合)。DOM内にJQueryオブジェクトが存在するかどうかを確認
重複がないかチェックし、いくつかの回答が見つかりました(link1、link2、link3)。いくつかの専門家が光の魔女を輝かせることができるのは、(最速の)最善の方法です。
オプションは次のとおりです。
$.contains //not working
$a.find
$a.parent()
$a.closes()
document.contains()
$a[0].isConnected
スニペット:
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>
ありがとうございました。
こんにちは、document.containsはIE 11では動作しません – Makla
@Maklaあなたの要件の一つとして、ブラウザの互換性については言及しませんでした。そうであれば、上記の '$ elem.closest( 'body')'は次の一番速い選択肢です。 :) – Harangue