要素が$('div').length
であるかどうかを確認できますが、.remove()
を使用して要素が破棄された場合でも.length
にdivが存在します。それが実際に存在するかどうかはどうすればわかりますか?JQuery: '.remove()'の横に要素が存在するかどうかをチェック
if ($('div').length) {
alert('yes')
} else {
alert('no')
}
要素が$('div').length
であるかどうかを確認できますが、.remove()
を使用して要素が破棄された場合でも.length
にdivが存在します。それが実際に存在するかどうかはどうすればわかりますか?JQuery: '.remove()'の横に要素が存在するかどうかをチェック
if ($('div').length) {
alert('yes')
} else {
alert('no')
}
それは親があるかどうかをテスト:
if ($element.parent().length) { alert('yes') }
else { alert('no') }
か、DOM要素への参照がある場合:
明らかif(element.parentNode) {
// yes
}
を、要素のためのこの唯一の作品は、あなたが既に持っているがへの参照。
FWIWでは、要素自体はまだ存在しますが、DOMツリーの一部ではありません。
'$ element'の親要素がDOMから削除されている場合、これは機能しません。たとえば、 '$ element.parent()。remove()'です。 '$ element'がDOMツリーにないのに、' $ element.parent()。length'はまだ1です。 – gilly3
@ gilly3:まあ、質問で言及されているように、要素に対して.remove()が実行されたと仮定します。とにかく、あなたの解決策+1が、私は 'html'ではなく' body'を探すだけで十分だと思います。 –
存在すると、あなたはそれがdomに存在するかどうかを確認したいのですか?
var $myDiv = $(".myDiv");
$myDiv.closest("html").length; // returns 1
$myDiv.remove();
$myDiv.closest("html").length; // returns 0
または使用.is("html *")
: "HTML" は祖先であるかどうかを確認してください。これは便利であるブール値を返します:
var $myDiv = $(".myDiv");
$myDiv.is("html *"); // returns true
$myDiv.remove();
$myDiv.is("html *"); // returns false
あなたは要素と要素が取り除かれた後、あなたはこのように確認することができますを削除する前に、要素の親を取得することができます!もちろん、要素の
var parent = $(element).parent();
$(element).remove();
if(parent.children(element)) { alert('yes'); }
else { alert('no'); }
要素の両親のいずれかが削除された場合、これはまだ(要素自体はまだ親を持つことになり、その場合には)動作するいくつかのjqueryのセレクタ
if (!$foo.closest('html').length) { //Element is detached }
だろう。
私はthis answerを引用しています。
Err ..あなたが何を意味するのか正確にはわかりません。 '.remove()'を使うと、要素はDOMから削除されます。 Lengthは期待される結果を報告します:http://jsfiddle.net/TmPBC/ –
これは、ページにdivがある限り、「はい」を警告します。 idを使って、正確な要素が削除されたかどうかをテストすることができます。 – Paulpro
$( 'div')が例でした。ページ全体にdivがあるかどうかを調べるためのテストは行っていませんでした。 – gavsiu