JQuery:检查元素是否存在于'.remove()'旁边

gav*_*siu 14 jquery exists

我知道你可以检查一个元素是否存在$('div').length,但是当一个元素被销毁时.remove(),.length仍然会报告div存在.我怎样才能发现它是否真的存在?

if ($('div').length) { 
  alert('yes') 
} else { 
  alert('no') 
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 7

测试它是否有父母:

if ($element.parent().length) { alert('yes') }
else { alert('no') }
Run Code Online (Sandbox Code Playgroud)

或者如果您有对DOM元素的引用:

if(element.parentNode) {
    // yes
}
Run Code Online (Sandbox Code Playgroud)

显然,这仅适用于您已经引用的元素.

FWIW,元素本身仍然存在,它不是DOM树的一部分.


gil*_*ly3 7

存在,你的意思是你想看看它是否存在于dom中?检查"html"是否是祖先:

var $myDiv = $(".myDiv");
$myDiv.closest("html").length;  // returns 1
$myDiv.remove();
$myDiv.closest("html").length;  // returns 0
Run Code Online (Sandbox Code Playgroud)

或者使用.is("html *").它返回一个布尔值,这很方便:

var $myDiv = $(".myDiv");
$myDiv.is("html *"); // returns true
$myDiv.remove();
$myDiv.is("html *"); // returns false
Run Code Online (Sandbox Code Playgroud)